許可エラー (など) を取り除くために、stderr をどこにもリダイレクトできません
find / -name "something" 2>/dev/null
「残念ながら、これはフォルダ全体ではなく、現在のディレクトリのみをチェックしているようです」.おそらく、サブディレクトリを検索しないということです。これを修正するには、find -name "filename"
を使用します
問題のファイルが現在の作業ディレクトリにない場合は、
経由でマシン全体を検索できます。find / -name "filename"
これは find / -name "*.pdf"
のようなものでも機能します など。時々、それをgrepステートメントにもパイプしたいことがあります(少なくとも私のマシンでは結果が強調表示されるため)、最終的には
find / -name "*star*wars*" | grep star
この方法または同様の方法を実行すると、ファイル名をすぐに見つけて、それが実際に探しているファイルであるかどうかを認識することができます。
find
コマンドには時間がかかります。ファイルを検索する最速の方法は locate
を使用することです インデックス化されたデータベースでファイル名 (およびパス) を検索するコマンド (コマンド updatedb
によって更新されます) ).
結果は簡単なコマンドですぐに表示されます:
locate {file-name-or-path}
コマンドが見つからない場合は、mlocate
をインストールする必要があります updatedb
をパッケージ化して実行 最初にコマンドを実行して、初めて検索データベースを準備します。
詳細はこちら:https://medium.com/@thucnc/the-fastest-way-to-find-files-by-filename-mlocate-locate-commands-55bf40b297ab
いくつかのディレクトリでネストされた検索が必要な場合:
find / -type f -wholename "*dirname/filename"
または接続ディレクトリ:
find / -type d -wholename "*foo/bar"