
わかりましたfind -mtime +x -delete
。しかし、すべての「古いコンテンツ」(隠しファイルを含む)を削除するにはどうすればいいですか?それともスクリプトで使用しますか?たとえば、ディレクトリがある場合target_dir
:
target_dir
X日の間に深い内容が変更されていないすべてのフォルダとサブフォルダを削除します(たとえば、以前のディレクトリツリーブランチを削除します)。target_dir
X日間変更されていないすべてのファイルを削除します。
編集する: 関連このトピックただし、最初にファイルを削除すると、2番目のステップで削除されないように古いディレクトリの変更日が「更新」されるため、許可された答えは実際には機能しません。隠しファイル/目次もわかりません。 。 。
答え1
多くのテストを行った後、最も簡単な方法は次のものを使用することです。
find /path/to/dir -mtime +30 -delete
更新されたコンテンツを含むブランチを除くすべてのアイテムが削除されます。
ただし、同時に次の点に注意してください。 (a) 動作しません: find /path/to/dir/* -mtime +30 -delete
; (b)/path/to/dir
古いコンテンツのみが含まれ、それ自体が更新されていない場合は、それ自体が削除されます。
したがって、ディレクトリを保存する方法は、最初のfind
コマンドを実行してからディレクトリがまだ存在することを確認し、そうでない場合は再生成することです。