基本的に、Linuxのすべてはファイルです。ただし、ファイルを編集する前に、システム内でファイルを見つけることができる必要があります。
Linuxファイル検索について
この記事では、ターミナルでファイルを検索するための便利な例を使用して、2つのコマンドについて簡単に説明します。 2つのコマンドは検索コマンドです およびlocateコマンド 。 2つのコマンドの違いは、findがリアルタイムで検索を実行し、locateが検索にインデックス付きデータベースを使用することです。つまり、locateコマンドの方が通常は高速ですが、検索対象のファイルがインデックスデータベースにあり、データベースは通常夜間に作成されるため、locateコマンドで新しいファイルが検出されないことを前提としています。私は自分の環境でDebian11を使用しています。ただし、コマンドは他のLinuxディストリビューションでも同じである必要があります。
ファイル名ではなくコンテンツでファイルを検索する場合は、代わりにgrepコマンドを参照してください。
findコマンドを使用したファイルとディレクトリの検索
現在のディレクトリでファイルを検索
findコマンドを使用してファイルを検索する場合は、端末で次のいずれかを実行します。
find <filname>を検索
仮定します、
find test.txt
これにより、作業中の現在のディレクトリ内のファイルが検索されます。
別のディレクトリでファイルを検索
ここで、特定のディレクトリにファイルを配置する場合。完全なコマンドは次のようになります。
find <path of directory/filename>
ドキュメントで「test.txt」という名前のファイルを検索するとします。完全なコマンドは次のようになります。
find Documents/test.txt
ファイル拡張子でファイルを検索
現在のディレクトリまたは特定のディレクトリにあるすべてのテキストファイルを検索する場合、それぞれのコマンドは次のようになります。
find *.txt
find <path of directory/*.txt>を検索
Documents / Karimのパスにあるすべてのテキストファイルを検索するとします。完全なコマンドは、次のようになります。
find Documents/Karim/*.txt
名前でファイルを検索
または、ファイルを名前で検索する場合は、-nameスイッチを使用できます。
find <path> -name <name of file you want to search>
Documents/Karimでtest1.txtという名前のファイルを検索するとします。完全なコマンドは次のようになります。
find Documents/Karim -name test1.txt
作業中の現在のディレクトリで特定のファイルを検索する場合。置く 。例に示されているパスで。
find . -name test1.txt
ファイルを検索するときに大文字と小文字を区別しない
ファイルを検索して大文字と小文字を区別しない場合は、-inameスイッチを使用します。完全なコマンドは次のようになります。
find . -iname test.txt
ファイルタイプでファイルを検索します。例:シンボリックリンク
特定のファイルタイプを検索するには、-typeオプションを使用します。完全なコマンドは次のようになります。
find <path> -type <c>
- c ファイルの種類を示し、それらは次のとおりです。
- b ブロック(バッファリング)スペシャル
- c 文字(バッファなし)スペシャル
- d ディレクトリ
- p 名前付きパイプli>
- f 通常のファイル
- l シンボリックリンク
- D ドア(Solaris)
Documents / Karimで通常のファイルを検索する場合は、次のコマンドを実行します。
find Documents/Karim -type f
現在のディレクトリで通常のファイルを検索する場合。完全なコマンドは次のようになります。
find . -type f
複数の拡張子を持つファイルを検索する場合は、カンマで区切ったc文字を使用してください。
現在のディレクトリにある通常の空のファイルをすべて検索するとします。
find . -type f -empty
現在のディレクトリ内のすべての空のディレクトリを検索する場合は、次のように検索コマンドで-dおよび-emptyオプションを使用します。
find . -type d -empty
サイズでファイルを検索
特定のサイズのファイルを検索する場合は、-sizeパラメーターを使用できます。次のサフィックスを正確なサイズで使用できます。
- c :バイト
- k :キロバイト
- M :メガバイト
- G :ギガバイト
- b :512バイトブロック
現在のディレクトリで正確に50バイトのすべてのファイルを検索するとします。次のコマンドを実行する必要があります。
find . -size 50c
現在のディレクトリで、それぞれ50バイトを超えるファイルまたは50バイト未満のファイルをすべて検索する場合は、次のいずれかのコマンドを実行する必要があります。
find . -size +50c
find . -size -50c
所有者(ユーザー)によるファイルの検索
特定のユーザーが所有するファイルを検索する場合は、-userオプションを使用できます。コマンドの構文は次のようになります。
find <path> -user <username>
vituxが所有する現在のディレクトリ内のファイルを検索するとします。コマンドは次のようになります。
find . -user vitux
ロケートコマンドを使用したファイルの検索
2つ目は、システム内のファイルとディレクトリを検索するために使用できる検索コマンドです。
まず、Debian11マシンにlocateユーティリティをインストールする必要があります。 rootでログインし、端末で次のコマンドを実行します。確認を求められたら、キーボードからYキーを押します。
apt-get install locate
操作が完了するのを待ちます。
Locateはより高速なコマンドであり、ファイルシステムのデータベースに依存しています。 1日に1回更新されますが、手動で更新する場合は、root権限を使用して端末で次のコマンドを実行します。
updatedb
現在のディレクトリでlocateコマンドを使用してファイルを検索するには、端末で次を実行します。
locate <filename>を検索します
私のファイル名がtest.txtだとします。完全なコマンドは次のようになります。
locate test.txt
-iオプションを使用して、ファイル名の大文字と小文字を無視できます。
locate -i <filename>
または
locate -i test.txt
Locateコマンドとfindコマンドはどちらも、ファイルの検索に役立ちます。どのコマンドを主に使用するかはあなた次第です。これらは、pipe、wc、sort、grepなどを使用して他のコマンドで拡張できます。