ファイルのタイムスタンプによる検索
Unix/Linux ファイルシステムには、各ファイルに 3 種類のタイムスタンプがあります。それらは次のとおりです:
<オール>7 日以上経過したファイルを検索して削除
7 日以上経過したファイルを見つけて削除する例を見てみましょう。オプション「-mtime」を使用します このためのfindコマンドの」。
1. 次のように find コマンドを使用してファイルのリストを取得します:
# find /path_to_directory -mtime +7 -type f -exec ls {}\;
2. ファイル名が特定のパターンで始まる場合は、次のようにそれを使用してフィルタリングします:
# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec ls {}\;
3. 出力をチェックして確認したら、削除スクリプトを実行します (これは非常に重要です)。そうしないと、回復不能なデータ損失が発生します。
# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {}\;
4. cron ジョブを介してリモート サーバーでこれを実行し、削除されたファイルのファイル名をログに記録する必要がある場合は、次のコマンドを使用します
# ssh user@remote_ip "find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {} \; >> /tmp/backup_deletion`date +%Y%m%d`.log 2>&1"
結論
-mtime パラメータは、変更時間に基づいてファイルを検索します。 -ctime 変更時間に基づいて検索します。 -atime、-mtime、および -ctime の使用時間 (日単位)。 find コマンドは、分単位のオプションもサポートしています。これらは次のとおりです。
<オール>たとえば、アクセス時間が 7 分より前のすべてのファイルを印刷するには、次のコマンドを使用します。
# find . -type f -amin +7 -print
-新しいオプション
-newer オプションは、参照ファイルよりも最近変更されたファイルを選択するために使用される変更時刻を持つ参照ファイルを指定します。
file.txt ファイルよりも最近変更されたすべてのファイルを検索:
# find . -type f -newer file.txt -print