7日より古いファイルを削除する


79

7日以上経過したすべてのファイルを削除するコマンドを以下に記述しますが、機能しません。

find /media/bkfolder/ -mtime +7 -name'*.gz' -exec rm {} \;

これらのファイルを削除するにはどうすればよいですか?


5
nameとの間にスペースが必要'*.gz'です。
ジョス

回答:


136

@Josが指摘したように、あなたは間にスペースを逃したname'*.gz'。また、コマンドの使用高速化のため-type fにコマンドを実行するオプションがFのみイレス。

したがって、固定コマンドは次のようになります。

find /path/to/ -type f -mtime +7 -name '*.gz' -execdir rm -- '{}' \;

説明:

  • find:見つけるためのUNIXコマンドFジル/ D irectories / Lのインク等
  • /path/to/:検索を開始するディレクトリ。
  • -type f:ファイルのみを検索します。
  • -name '*.gz':で終わるファイルをリストします.gz
  • -mtime +7:変更日が7日より古いもののみを考慮してください。
  • -execdir ... \;:見つかったそのような結果ごとに、で次のコマンドを実行し...ます。
  • rm -- '{}':ファイルを削除します。この{}部分は、検索結果が前の部分から置き換えられる場所です。--コマンドパラメータの終わりは、ハイフンで始まるこれらのファイルのプロンプトエラーを回避することを意味します

または、次を使用します。

find /path/to/ -type f -mtime +7 -name '*.gz' -print0 | xargs -r0 rm --

男を見つけるから:

-print0 
      True; print the full file name on the standard output, followed by a null character 
  (instead of the newline character that -print uses). This allows file names that contain
  newlines or other types of white space to be correctly interpreted by programs that process
  the find output. This option corresponds to the -0 option of xargs.

次のことになるため、これはもう少し効率的です。

rm file1 file2 file3 ...

とは対照的に:

rm file1; rm file2; rm file3; ...

以下のような-exec方法。


別の高速なコマンドは次の代わりにexecの+ターミネーターを使用することです\;

find /path/to/ -type f -mtime +7 -name '*.gz' -execdir rm -- '{}' +

このコマンドはrm、ファイルが検出されるたびにではなく、最後に1回だけ実行されます。このコマンドは-delete、modernで次のようにオプションを使用するのとほぼ同じ速度ですfind

find /path/to/ -type f -mtime +7 -name '*.gz' -delete

3
-delete最後にまっすぐに行かないのはなぜですか?+またはを台無しにするのはなぜ\;ですか?
rain01


2

findでファイルを慎重に削除してください。-lsを指定してコマンドを実行し、削除するものを確認します

find /media/bkfolder/ -mtime +7 -name '*.gz' -ls 。次に、履歴からコマンドを取り出して追加します-exec rm {} \;

findコマンドが実行できる損害を制限します。1つのディレクトリからのみファイルを削除する場合、-maxdepth 1サブディレクトリを検索したり、タイプミスし/media/bkfolder /た場合にシステム全体を検索したりすることを防ぎます。

私が追加する他の制限は、のようなより具体的な名前引数です。-name 'wncw*.gz'時間より新しい時間を追加 -mtime -31し、検索されたディレクトリを引用します。これらは、クリーンアップを自動化する場合に特に重要です。

find "/media/bkfolder/" -maxdepth 1 -type f -mtime +7 -mtime -31 -name 'wncw*.gz' -ls -exec rm {} \;

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.