18

これは簡単でどこかで答えられたと思いますが、探していたものを見つけることができませんでした。基本的に、私はcronスクリプトを実行して、7日ごとに特定のディレクトリの内容をクリアしようとしています。これまでに次のことを試しましたが、

find /myDir -mtime 7 -exec rm -rf {} \;

ただし、これにより親ディレクトリmyDirも削除されますが、これは不要です。私も試しました、

find /myDir -type f -type d -mtime 7 -delete

何もしないように見えた。私も試しました、

fnd /myDir -type d -delete

必要に応じて、親ディレクトリ以外のすべてを削除しました。しかし、警告メッセージが表示されました、

安全でない可能性のある相対パス

誰かが私のスクリプトを修正して、フォルダ内のすべてのサブディレクトリを安全に削除できるようにしていただければ幸いです。

どうもありがとう。=)

更新: 私は次のことに行くことにしました、

find /myDir -mindepth 1 -mtime 7 -delete

答えたすべての人から私が学んだことに基づいています。繰り返しになりますが、皆さんに感謝します。

4

3 に答える 3

14

試す:

find /myDir -mindepth 1 -mtime 7 -exec rm -rf {} \;
于 2011-05-05T10:34:25.663 に答える
7

どうですか

cd myDir/ ; find . -type d -delete

myDirこれを親ディレクトリから実行すると仮定します。

myDirが存在することを保証できない場合は、これがより安全です。

cd myDir/ && find . -type d -delete
于 2011-05-05T10:37:45.947 に答える
6

find /myDir -mindepth 1 -mtime 7 -delete

おそらく

find /myDir -mindepth 1 -mtime +7 -delete

(または多分mtime +6)。+正確に7日ではなく、7日以上経過したものを意味します。

于 2013-01-17T18:35:43.000 に答える