find コマンドは、Linux で最もよく使用されるコマンドの 1 つです。ここでは、いくつかの一般的な使用方法をまとめます。
1. ファイル名で検索します。
現在のディレクトリで txt で終わるすべてのファイルを検索します。 2 番目のコマンドは、-exec パラメーターを使用して、見つかったすべてのファイルに対して操作を実行します。形式に注意し、スペースや ; が欠けていないようにしてください。 -name パラメーターには、2 番目の例のような正規表現を使用できます
find ./* -name "*.txt"
find ./* -name "[ab]*.py"
find ./* -name " *.pyc" -exec rm {} ;
2. 変更時刻で検索
現在のディレクトリで当日に変更されたファイルを検索します。 -1 は、1 日前に変更されたファイルを示します。 -2 は最初の 2 日間を意味します。 find ./* -mtime n n は、ファイル データに対する最後の変更が n*24 時間前であることを意味します。 +n は n 日前、-n は n 日以内 (-mmin は n 分)、n は n 日目を指し、意味が異なりますので区別に注意してください。
find ./* -mtime 60 -type f -print
find ./* -mmin -60 -type f -print
find ./* -mmin +60 -type f -print
3. ファイルステータスの変更
前のパラメータと比較すると、このパラメータの意味がファイルのアクセス許可が変更されることを除いて、基本原則は同じです。コンテンツの変更とファイルのパーミッションの変更は異なります。ここで意味するのは、ファイルのパーミッション、所有者、その他の情報など、ファイル i ノードのデータが変更されることです。 cmin は過去 60 分間にアクセス許可が変更されたことを意味し、ctime は過去数日間にアクセス許可が変更されたことを意味します。
find ./* -cmin +60 -type f -print
find ./* -ctime -60 -type f -print
4
グループとユーザーに従って、-userと-nouserの最後のものを見つけますファイルが属するもの このコマンドは、現在削除されているシステム ユーザーのすべてのファイルを検索します。 -group と -nogroup は同様の機能を持ちます。
find ./* -user fox
find ./* -nouser
5
find は、特定のディレクトリを回避し、複数のディレクトリを回避します。このうち、-a は and を意味し、-o は or を意味します。
find test -path "test/test4" -prune -o -print
find test ( -path test/test4 -o -path test/test3 ) -prune -o -print
find ( -path ./modules - o -path ./framework -o -path ./utils -o -path ./config ) -prune -o -name "Bigger.*" -print
6
-perm オプションはファイルのアクセス許可を指します
find - perm 755 -print
7
i ノードを使用してファイル番号を見つけます。 find コマンドでは以下のように i ノード番号を指定できます。ここで、find コマンドは、inode 番号を使用してファイルの名前を変更します。 rm 経由でその特定のファイルを削除することもできます。
ls -i1 test*
16187429 test-file-name
16187430 test-file-name
find -inum 16187430 -exec mv {} new-test-file-name ;
8
現在のファイルの中で最大のファイルを検索しますdirectory 5 files
find . -type f -exec ls -s {} ; sort -n -r head -5
9
次のコマンドは 100M を超える *.zip ファイルを削除します。
find / -type f -name *.zip -size +100M -exec rm -i {} ;