GNU/Linux >> Linux の 問題 >  >> Linux

Linuxコマンドラインのどこにでもある可能性のあるファイル/ディレクトリを見つけるにはどうすればよいですか?

許可エラー (など) を取り除くために、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"

Linux
  1. Linuxで特定のファイルを提供するパッケージを見つける方法

  2. Linuxのディレクトリツリーで最も古いファイルを見つける方法

  3. Linuxコマンドラインでディレクトリをコピーする方法[初心者向けのヒント]

  1. コマンドラインを使用してLinuxでtar.gzファイルを抽出する方法

  2. Linuxでjar内のファイルをコマンドラインに置き換える方法は?

  3. ディレクトリツリーで最も古いファイルを見つけるにはどうすればよいですか

  1. Linuxでファイルを見つける方法

  2. Linuxですべてのディレクトリのファイルを再帰的に検索する方法

  3. ファイルを見つけて、Linux でそのディレクトリに cd します