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

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

次のファイルを見つけようとします。第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

おすすめ記事