すべてのディレクトリでファイルを見つける方法

すべてのディレクトリでファイルを見つける方法

次のファイルを見つけようとします。第1巻

私のテストでは上記のファイルを見つけようとしていますが、このテストではファイルがどこにあるのかわかりません。

試してみましたが、find / -iname book1出力はありません。

ファイルがどこにあるかわからない場合は、コマンドラインを使用してbook1という名前のファイルを見つけることができますか?

編集する:

私のシナリオは以下でより詳細に説明されています。

  1. ファイル拡張子が不明
  2. 正確な名前(大文字、数字など)は不明です。
  3. ファイルの場所が不明

答え1

まず、パラメータ-inameはシェルです。模様。パターンの詳細をご覧ください。バッシュマニュアル。ポイントはfind本当に探すファイルのファイル名は、指定されたパターンと一致する必要があります。大文字と小文字を区別しない文字列一致をbook1有効にするには、次の項目をBook1.gnumeric追加する必要があります。*

find / -iname 'book1*'

またはフルネームを指定してください。

find / -iname 'Book1.gnumeric'

第二に、ファイル名の大文字と小文字は無視される-inameため、指定すると検索することもできます。探しているファイルが呼び出されたと確信している場合は、使用しないで使用すると高速化されます。find-iname book1Book1bOok1Book1.gnumeric-iname-name

find / -name 'Book1.gnumeric'

第三に、引用文に記載されているパターンを覚えておいてください。その他の回答

最後に、このファイルを探しますか? どこでもあなたのシステムに?$HOMEファイルを処理したり、どこかからダウンロードした場合は、探しているファイルが実際にディレクトリにある可能性があります。今回もはるかに高速です。

編集する:

質問を修正したことが確認されました。完全なファイル名、大文字と小文字、場所が本当にわからない場合は、次のように使用する必要があります。

find / -iname 'book1*'

2>/dev/nullまた、root以外のユーザー*permission denied*として呼び出すときに発生するすべてのエラーやその他のエラーを非表示にするには、この項目を行の末尾に配置することをお勧めします。find

find / -iname 'book1*' 2>/dev/null

単一のファイルを検索したい場合、システムにfind基準に一致するファイルが 1 つしかない場合は、一致する最初のファイルを見つけて終了できます。

find / -iname 'book1*' -print -quit 2>/dev/null

答え2

locateコマンドを試してみてください。検索を高速化するために、ファイル名データベースを使用します。

一致するすべてのファイルを検索し*book1*て大文字と小文字を無視するには、次のようにします。

locate -i book1

ファイルを検索したい場合スタートbook1ワイルドカードは直接作成する必要があります。

locate -i 'book1*'

よりはるかfindに高速ですが、データベースを最後に更新した時点と同じくらい最新です。

答え3

book1.somethingファイルの場所、の正確な値、somethingファイル名の大文字と小文字のパターンが不明な名前のファイルがあることがわかっている場合:

find / -iname 'book1.*'

ファイル名に単語が含まれていることがわかっている場合は、book次のコマンドを使用して潜在的に大きなリストを作成できます。

find / -iname '*book*'

引数は-nameシェルグローブパターンです。ファイルがあるディレクトリーで、以下を比較します。

$ ls Book1
ls: cannot access 'Book1': No such file or directory
$ ls Book1.*
Book1.gnumeric

これは実行された検索の種類を表します-name。この-inameオプションは大文字と小文字を区別しないバージョンのみを許可します。

答え4

Zshではglobモードを使用できるので、次のように動作します。

ls -a /**/book1

名前付きファイルがあるすべての場所を見つけますbook1

私のテストでは、この方法はを使用するよりも速いようfindで、結果もほとんどありませんでした。ユーザー権限エラーroot権限なしで実行する場合

バラより手動

関連情報