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

Linux で特定の期間より古いファイルを見つけて削除する方法

ファイルのタイムスタンプによる検索

Unix/Linux ファイルシステムには、各ファイルに 3 種類のタイムスタンプがあります。それらは次のとおりです:

<オール>
  • アクセス時間 (-atime) :ファイルが最後にアクセスされたときのタイムスタンプ。
  • 変更時刻 (-mtime) :ファイルが最後に変更されたときのタイムスタンプ。
  • 時間の変更 (-ctime) :ファイルのメタデータ (権限や所有権など) が最後に変更されたときのタイムスタンプ。
  • 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 コマンドは、分単位のオプションもサポートしています。これらは次のとおりです。

    <オール>
  • -amin (アクセス時間)
  • -mmin (変更時間)
  • -cmin (時間変更)
  • たとえば、アクセス時間が 7 分より前のすべてのファイルを印刷するには、次のコマンドを使用します。

    # find . -type f -amin +7 -print

    -新しいオプション

    -newer オプションは、参照ファイルよりも最近変更されたファイルを選択するために使用される変更時刻を持つ参照ファイルを指定します。

    file.txt ファイルよりも最近変更されたすべてのファイルを検索:

    # find . -type f -newer file.txt -print


    Linux
    1. Linuxで変更日時に基づいてファイルを検索およびソートする方法

    2. Linuxで.gzファイルと.tar.gzファイルを抽出する方法

    3. Linux –ファイルの作成日を見つける方法は?

    1. Linux で空のディレクトリとファイルを見つけて削除する方法

    2. Linuxで特定の日付より古いファイルを削除するにはどうすればよいですか?

    3. Linux ですべての空のファイルとディレクトリを再帰的に削除するにはどうすればよいですか?

    1. Linuxでコマンドラインからファイルとディレクトリを削除する方法

    2. LinuxでX日より古いすべてのファイルを削除するにはどうすればよいですか?

    3. x日より古いファイルまたはフォルダーを見つけて削除する