任意のディレクトリからファイルを検索する方法

任意のディレクトリからファイルを検索する方法

というファイルを探したいのですが書籍1

私のテストでは、前述のファイルを探そうとしていますが、このテストでは、そのファイルがどこにあるかわかりません。

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

ファイルの保存場所がわからない場合、コマンド ラインを使用して book1 というファイルを見つけるにはどうすればよいですか?

編集:

私のシナリオの詳細は以下に記載されています。

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

答え1

まず、引数は-inameシェルですパターンパターンの詳細については、Bash マニュアル要点は、find実際に探すファイルの場合、ファイル名は指定されたパターンと一致する必要があります。大文字と小文字を区別しない文字列book1を一致させるには、次のようにBook1.gnumeric追加する必要があります。*

find / -iname 'book1*'

またはフルネームを指定します:

find / -iname 'Book1.gnumeric'

2 番目に、はファイル名の大文字と小文字を無視するので、 を指定すると-iname、なども検索される可能性があります。探しているファイルが と呼ばれることが確実な場合は を使用しないでください。ただし、 を使用すると、より高速になります。find-iname book1Book1bOok1Book1.gnumeric-iname-name

find / -name 'Book1.gnumeric'

3番目に、パターンを引用することを覚えておいてください。その他の回答

最後に、ファイルを検索してもよろしいですか? どこにでもシステム上で作業していたり​​、どこかからダウンロードしていたり​​する場合は、探しているファイルが実際に$HOMEディレクトリ内にある可能性があります。この場合も、その方がはるかに高速になる可能性があります。

編集:

質問を編集したことに気づきました。完全なファイル名、大文字と小文字、および場所がわからない場合は、次のようなものを使用する必要があります。

find / -iname 'book1*'

また、非ルート ユーザーとして起動した場合に表示されるすべてのエラーやその他のエラーを非表示にするには2>/dev/null、行の末尾に次の行を追加することをおすすめします。*permission denied*find

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

探しているファイルが 1 つだけであることが確実で、システム上に条件に一致するファイルが 1 つしかない場合は、find一致する最初のファイルが見つかった後に終了するように指示できます。

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シェル glob パターンです。ファイルがあるディレクトリから、次を比較します。

$ 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、また、ほとんどまたはまったく生成されません。ユーザー権限エラールート権限なしで実行した場合

見るマニュアル

関連情報