31日以上更新されていないすべてのファイル、フォルダ、およびサブフォルダを削除するコマンドが必要です。私はこれを試しました
find . -mindepth 1 -mtime +31 -exec rm -rf "{}" \;
しかし、このような階層がある場合
.
├── old_sub_folder1
└── old_sub_folder2
├── old_file
└── old_sub_folder3
└── new_file
old_*
古いフォルダ\ファイルはどこにあり、new_file
新しいファイルはどこにありますか?
このコマンドはすべてを削除します。日付がold_sub_folder2
作成された後は更新されないためです。new_file
old_sub_folder2/old_sub_folder3/new_file を削除しないコマンドが必要です
ベストアンサー1
問題は、コマンド-r
にオプションを追加することです。rm
フォルダが空でなくてもフォルダは削除されます。
これは2つのステップで行う必要があります。
削除のみ古いファイル:
find . -type f -mtime +31 -delete
古いフォルダを削除するには、そのフォルダが空の場合は、次の点を確認してください。ここ、少し調整します。
find . -type d -empty -mtime +31 -delete