40LinuxのFindコマンドのベストサンプル

Linuxのfindコマンドは、システム管理者が幅広い検索条件に基づいてファイルとディレクトリを検索 名前、タイプ、拡張子、サイズ、権限などでディレクトリやファイルを見つけることができます。

ファイルとディレクトリの検索に加えて、findコマンドを他のコマンドと組み合わせることで、結果に対してアクションを取ることができます。, -execオプションを追加すると、sysadminsは外部コマンドを実行し、サイズ、名前などの指定された条件に一致するファイルのコピー、移動、削除、またはアクセス許可の変更などのアクションを実行できるようになります。

この記事では、基本的なLinuxのfindコマンドを例とともに説明することから始めます。 これはファイルおよび登録簿を見つける方法を示す。 次に、-execオプションを使用して、ファイルまたはディレクトリのサイズ、権限などに基づいてファイルまたはディレクトリに対して,

findコマンドの一般的な構文は

find {path} {name -of-file or dir-to-search} {action-to-take}

ここで、

このチュートリアルでは、指定されたパターンに一致するファイルとディレクトリを見つける方法 まりもあったのを実行するためのファイルやディレクトリのコマンドはあります。 このガイドはUbuntuに基づいていますが、ほとんどのLinuxディストリビューショ

ファイルとディレクトリを検索

名前または拡張子で特定のファイルを検索

特定のファイルを検索するには、ルート(/)から次のコマンド, このコマンドには、検索しているファイルの正確な名前が含まれています。

find . -name file22.txt

出力

./test/file22.txt./sales/file22.txt

結果にはパスが含まれていることに注意してください。 これは、ファイルがあるディレクトリがわからない場合、または複数の場所にある場合に重要です。

現在の場所にいる間に別のディレクトリ内のファイルを検索することもできます。 この場合、検索するディレクトリのパスを指定する必要があります。,

find ./test -name file22.txt

別のディレクトリ内の特定のファイルを探す

この場合、テストディレクトリ内の文字fileで始まるすべてのファイルを探します。

find ./test -name file*

Output

./test/file22.txt./test/file30.doc./test/file1.txt./test/file5,doc

拡張子でファイルを検索

Linuxで特定の拡張子を持つファイルを見つけるには、コマンドに追加します。,

find . -name *.txt

Output

./test/subtest/subfil.txt./test/file22.txt./test/file1.txt./home1/files32.txt./home2/file22.txt./qa/tags.txt

名前でファイルとディレクトリを検索

以下のコマンドを使用して、qaで始まるファイルとディレクトリを探します。 私たちのコンピュータには、qatree.txtおよびqa.txtファイルと、qaという名前のディレクトリがあります。,

コマンドを実行すると、

find ./ -name "qa*"

次の出力を返します

./test/qatree.pdf./test/qa.txt./home/qa

コマンドは、検索条件に一致するファイルとディレクトリの両方を返します。 探ファイルやディレクトリのみを指定する必要がありますこのコマンドです。

ファイルまたはディレクトリのみを検索

ファイルのみには、type fスイッチを使用します。

ファイルのみ

find ./ -type f -name "qa*"

出力

./test/qatree.pdf./test/qa.txt

ディレクトリのみ

ディレクトリのみを検索するtype dオプションを追加します。,

find ./ -type d -name "qa*"

出力

./home/qa

大文字と小文字を区別しない検索コマンド

-nameスイッチでのすべての検索は大文字と小文字 すべてのケースを取得するには、-inameオプションを使用します。

find ./ -iname "qa*"

Output

./test/qatree.pdf./test/qa.txt./test/QAtest.txt./home/qa

複数のディレクトリからファイルを検索

異なるディレクトリにあるファイルを検索するには、コマンドにパスを追加します。, この場合、testおよびnumericディレクトリをチェックインします。

find ./test ./numeric -name file22.txt -type f

Output

./test/file22.txt/root/numeric/file22.txt

すべてのディレクトリから異なる拡張子を持つ複数のファイルを検索

findコマンドを使用して、*.doc*.txt*.pdfなど これは、別々に行うことができます,一度に一つの拡張機能,またはすべての目的の拡張子を含むただ一つのコマンドを使用して.,

find . -type f ( -name "*.txt" -o -name "*.pdf" -o -name "*.doc" )

output

特定のテキストを含むファイルを検索

特定のテキストを含むファイルにアクセスしたいが、ファイル名や場所を思い出せない場合があります。 このコマンドを使用すると、ターゲットテキストを含むすべてのファイ

hyperconvergence”という単語を含むすべてのファイルを探すには、次のようにします。

find / -type f -exec grep -l -i "hyperconvergence" {} ;

Output

/root/numeric/hci/root/HCIP

–iオプションを使用すると、大文字と小文字を無視し、大文字と小文字を区別しないテキスト、すなわちhyperconvergence、Hyperconvergenceなどを見つけることができます。,

特定のディレクトリ内のファイルを探すには、単にコマンドに追加します

find ./numeric -type f -exec grep -l -i "hyperconvergence" {} ;

出力

./numeric/hci

サイズに基づいてファイルとディレクトリを検索

特定の範囲内で、特定のサイズよりも小さい、等しい、または大きい、または空のすべてのファイルまたはディレクトリを見つけることができます。 検索するファイルまたはディレクトリの種類に応じて、適切なサイズの形式を使用します。,特定のサイズのndファイル–30mbに等しい

検索するにはすべての30MBのファイルを検索

find / -size 30M

指定されたサイズよりも大きいファイルを検索

find -size +2M

出力

. /Downloads/ubuntu18043.iso ./.cache/pip/http/6/e/3/8/3/6e38383f41850c3e5705d48116bc52f81b92a80500f414305057 7a9c

現在のディレクトリで10MB未満のファイルを検索

find . -type f -size -10M

サイズが100-200MBのファイルを検索する

100-200mbなどの特定の範囲内のファイルを検索する場合

find / -size +100M -size -200M

20kbより大きいディレクトリを探す

find / -type d -size +20k

空のファイルとディレクトリを検索します。,

ファイル

find ./ -type f -size 0

または

find ./ -type f –empty

ディレクトリ

find ./ -type d –empty

年齢または変更時刻によってファイルを検索

n日より古いファイルを検索

find /path/ -type f -name '*.txt' -mtime +8

-mtime +8txt8日より古いファイルを探します。,

変更日によって

これは過去17時間以内に変更されたファイルを検索します

find . -mtime -17 -type f 

過去10日以内に変更されたディレクトリを検索します

find . -mtime -10 -type d 

アクセスまたは変更に基づいてファイルを検索します

アクセスされた日付または時刻に基づいてファイルを検索します。 ここで確認することができます。ファイルをやってアクセスされた。

ホームディレクトリ内の過去10日以内にアクセスされていないファイルを表示します。,

find /home -atime +10

正確に10日前にアクセスされたファイル

find /home -atime 10

過去10日以内にアクセスされたファイル

find /home -atime -10

過去n日以内に変更されたファイルを見つける

/homeコマンドを使用して過去10日以内に変更されたディレクトリ;

find /home -mtime -10 

特定の期間内に変更されたファイルを検索します。

たとえば、ホームディレクトリ内の6日前から15日前までに変更されたすべてのファイル。,

過去10分以内にアクセスされたファイルとディレクトリ

過去10分以内にアクセスされたファイルを検索するには、-aminオプションを

find . -amin -10 -type f

出力

./.bash_history./.profileroot@ubuntu1804:~#

過去10分以内にアクセスされたディレクトリ

find . -amin -10 -type d

特定の権限に一致するファイルを検索

構文

$ find -perm mode

ここで、modeはこれは、644, 655, 700, 777などの数値、またはu=x, a=r+x,などの文字のいずれかです。,

モードを指定するには、次の三つの異なる方法があります。

  1. 指定された正確な権限を持つファイルを検索するときに、接頭辞なしで指定します。
  2. With”-“少なくとも指定された権限を持つファイルの場合。 これにより、指定された権限と追加の高い権限を持つファイルが返されま
  3. /“を使用するには、ファイルに対するアクセス許可を持つ所有者またはグループを指定する必要があります。,

許可を得てファイルを検索777

find -perm 777

出力

./file1

少なくとも766
find-perm-766

出力

./file2./file1

コマンドは、ファイル所有者が読み取り/書き込み/実行権限を持っているすべてのファイルを探します。

  • グループには読み取り/書き込み権限があります
  • 他には読み取り/書き込み権限があります

そのため、この基準を満たす二つのファイルfile1とfile2を返します。, ファイルには正確な766権限が必要ではなく、長い間追加の権限を持つことができますが、少なくとも指定された権限が必要です。

所有者が書き込み可能なファイルを探す

/“を使用して、所有者、グループ、または他のユーザーが書き込み可能なファイルを探します。

find -perm /222../file2./file3./file1

上記は、所有者またはグループによって書き込み可能なファイルを探します。
これは、両方で書き込み可能であるが必ずしも両方ではないファイルを返します。 両方とも書き込み可能な権限を持つファイルを表示するには、–接頭辞を使用します。,

./file2./file1

ユーザーが所有するファイルを検索

Jackが所有するすべてのファイルを検索

find /home -user jack

Output

/home/jack/home/jack/examples.desktop/home/jack/.gnupg/home/jack/.gnupg/private-keys-v1.d/home/jack/ans.cgi

ユーザーが所有する特定のファイルを検索

Jackが所有するすべてのテキストファイルを検索

find /home -user jack -iname "*.txt"

output

/home/jack/docs/file32.txt

ファイルとディレクトリをパーミッションとともに検索して一覧表示します

find -name "*.conf" | ls -l

output

結果を検索して行動します

このセクションでは、findコマンドで指定されたパターンに一致するファイルに対してどのように行動できるかを見ていきます。,

ファイルの検索とパーミッションの変更

特定のファイルタイプのパーミッションの検索とパーミッションの変更 この場合、以下に示すように、異なる権限を持つPHPファイルを使用します。,

すべてのPHPファイル(上記)を探し、その権限を755に置き換えます

find ver -name "*.php" -type f -exec chmod 755 {} ;

コマンドはverディレクトリ内のPHPファイルを探し、その権限を755(rwxr-xr-x)

結果

ファイルとディレクトリの権限の検索と変更

644の権限を持つファイルを検索し、655の権限を持つように変更します

find . -type f -perm 644 -exec chmod 655 {} ;

644の権限を持つディレクトリを探し、これを755に置き換えることもできます。,

find . -type d -perm 644

出力

./docs 

docsフォルダには644の権限があります

drwxrwxr-x 2 jack jack 4096 Jan 3 12:45 docs

755に設定するには、

find . -type d -perm 644 -exec chmod 755 {} ;

これで、755

find . -type d -perm 755

出力
正確に何を確認することができます。
./docs

上から、rootディレクトリとdocsディレクトリに755の権限があることがわかります。,

Ls –laコマンドは、次の詳細を提供します

drwxr-xr-x 2 jack jack 4096 Jan 3 12:45 docs

ファイルまたはディレクトリを検索してコピーします

特定のファイルを検索してディレクトリにコピーします

以下のコマンドは、file22.txtファイルを検索し、~/tmp/imagesディレクトリ。,

find -iname file22.txt -exec cp {} ~/tmp/images ;

あるタイプのファイルをディレクトリに検索してコピーします

jpgカレントディレクトリ内の拡張子を持つ画像などのファイルを見つけ、画像フォルダのような別の場所にコピーするには、次のようにします。

find -iname '*.jpg' -exec cp {} ~/tmp/images ;

これは、すべてのjpgファイルを見つけて

これにより、すべてのjpgファイルをにコピーします。”c34073ebf5″>フォルダ。

一つのファイルを複数のディレクトリに検索してコピー

単一のディレクトリを複数のディレクトリに検索してコピーします。,

find ~/tmp/dir1/ ~/tmp/dir2/ $HOME/3/ -maxdepth 0 -exec cp ~/numeric/hci {} ;

これにより、ファイルhciファイルを検索し、/tmp/dir1/ /tmp/dir2/および$HOME/3/

ファイルを検索して別のディレクトリに移動します

既知のファイルをディレクトリから別のディレクトリに移動します。, universal.phpファイルを移動するには、

find ~/folder/ -type f -name universal.php -exec mv {} ~/numeric/ ;

特定の拡張子を持つファイルを別のフォルダーに検索して移動します

find ~/numeric/ -type f -name '*.php' -exec mv {} ~/folder/ ;

特定のファイルを見つけて特定の別のフォルダーに移動します

find -type f -name uni*.* -exec mv {} ~/unifiles/ ;

コマンドは、すべてのファイルを検索します。uniで始まり、拡張子を持つ名前。 次に、ディレクトリに移動します/unifiles/

年齢に基づいてファイルを検索および移動します

指定された日より古いファイルを検索および移動しますアーカイブなどの別の場所に。,

find /path/ -type f -name '*.pdf' -mtime +20 -exec mv {} /backup1/ ;

これにより、20日より古いpdfファイルが検索され、backup1ディレクトリに移動されます。,ファイルとディレクトリ

現在のディレクトリ内のファイルまたはディレクトリを検索および削除する構文は

find . -type f -name "file to delete" -exec rm -f {} ;ファイルのみを削除するか、

find . -type d -name "dir-to-delete" -exec rm -rf {} ;ディレクトリのみを削除する

特定のファイルのみを検索および削除する

tilで始まるファイルを検索および削除するには、次のようにします。

find . -type f -name "til*" -exec rm {} ; 

tilで始まるディレクトリを検索して削除するには

find . -type d -name "til*" -exec rm {} ;

ファイルとディレクトリの両方を削除します

find . -name "til*" -exec rm -rf {} ; 

これにより、Til文字で始まるファイルとディレクトリの両方が削除されます。,

拡張子による削除

以下は、現在のディレクトリ内のすべてのtxtファイルを検索して削除する方法です。 置き換えますtxtなどの別の拡張子を持つbakpdfまたは削除する他のもの。

find . -type f -name "*.txt" -exec rm -f {} ;

各ファイルを削除する前に確認を求める場合は、以下のように-iオプションを追加します。,

find . -type f -name "*.txt" -exec rm -i {} ;

Output

デフォルトでは、-rmはディレクトリを削除せず、–rオプションを使用して再帰的に削除する必要があります。 これにより、空のディレクトリとファイルを含むディレクト -fオプションは強制的に削除され、ファイルとディレクトリの両方に使用されます。

n日より古いファイルを検索および削除します

現在のディレクトリから20日より古いバックアップファイルを検索および削除します。,

find . -type f -name '*.bak' -mtime +20 -exec rm {} ;

これにより、すべての.bak20日より古いファイルが削除されます。

ディレクトリのみを検索して削除する

dir22

find . -type d -name dir22 -exec rm -rf {} ;

ディレクトリ名の大文字小文字が一致することを確認するか、-inameオプションを使用します。

find . -type d -iname Dir22 -exec rm -rf {} ;

Dir22dir22

削除する前に確認するには、-iオプションを使用します。

find . -type d -iname Dir22 -exec rm -rf -i {} ;

出力
rm:ディレクトリを削除’。/ディレクトリ22″, n
rm:ディレクトリを削除’。/ディレクトリ22″ y

このケースでは、ディレクトリにnを入力しましたDir22削除されず、ydir22削除されます。

空のファイルの検索と削除

次のコマンドのいずれかを使用して、空のファイルを検索して自動的に削除できます。

find ./ -type f -size 0 -exec rm -f {} ;

または
検索します。/-タイプf-サイズ0|xargs rm-f
または
検索します。,/-type f-size0-delete

空のディレクトリを検索して削除

空のディレクトリを削除するには、dオプションを使用します。

find ./ -type d -empty -exec rmdir {} ;

別の選択肢は、removeの代わりにdeleteを使用することです。

find ./ -type d -empty -delete

コンピュータからシステムまたは重要なファイルを削除すると、オペレーティングシステムまたはアプリケーションが損傷したり、重要なデータが失

偶発的な削除を避けるには、root以外のユーザーアカウントを使用することをお勧めします。, また、有用ではない適切なファイルを削除し、念のためにすべてのデータファイルのバックアップを持っていることを確認してください。

次は何ですか?

先に進んで、ラボまたは非本番環境で上記のLinux findコマンドを試してみてください。 場を利用する事ができるスマートインフラ/ポジショファイルシステムの清掃活動とのCrontab. と、Linux、チェックアウトはこのオンラインコースです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ツールバーへスキップ