次のファイルを見つけようとします。第1巻。
私のテストでは上記のファイルを見つけようとしていますが、このテストではファイルがどこにあるのかわかりません。
試してみましたが、find / -iname book1
出力はありません。
ファイルがどこにあるかわからない場合は、コマンドラインを使用してbook1という名前のファイルを見つけることができますか?
編集する:
私のシナリオは以下でより詳細に説明されています。
- ファイル拡張子が不明
- 正確な名前(大文字、数字など)は不明です。
- ファイルの場所が不明
ベストアンサー1
まず、パラメータ-iname
はシェルです。模様。パターンの詳細をご覧ください。バッシュマニュアル。ポイントはfind
本当に探すファイルのファイル名は、指定されたパターンと一致する必要があります。大文字と小文字を区別しない文字列一致をbook1
有効にするには、次の項目をBook1.gnumeric
追加する必要があります。*
find / -iname 'book1*'
またはフルネームを指定してください。
find / -iname 'Book1.gnumeric'
第二に、ファイル名の大文字と小文字は無視される-iname
ため、指定すると検索することもできます。探しているファイルが呼び出されたと確信している場合は、使用しないで使用すると高速化されます。find
-iname book1
Book1
bOok1
Book1.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