次のコマンドは、100日以上経過したディレクトリとサブディレクトリを削除します。
find /var/tmp -type d -ctime +100 -exec rm -rf {} \;
しかし、実際には、コマンドがすべてのディレクトリを削除することを確認するためにテストを実行したいと思います。
-ctime +0
だから(0日より古いディレクトリを削除するために)設定しました。
find /var/tmp -type d -ctime +0 -exec rm -rf {} \;
しかし、findコマンドはディレクトリを削除しませんでした。
-ctime
テストを実行するにはどうすればよいですか?
答え1
man
ページfind
の内容は次のとおりです-ctime
。
-ctime n
File's status was last changed n*24 hours ago. See the comments
for -atime to understand how rounding affects the interpretation
of file status change times.
内容は次のとおりです-atime
。
-atime n
File was last accessed n*24 hours ago. When find figures out
how many 24-hour periods ago the file was last accessed, any
fractional part is ignored, so to match -atime +1, a file has to
have been accessed at least two days ago.
-ctime 1
したがって、1日以上前に変更されたファイルは丸めで削除することが期待され、-ctime +-1
必要な効果を得るにはそれを設定する必要があります。
自分が削除されないようにするには、/var/tmp
最初に作業するディレクトリを指定して常に印刷してください-mindepth 1
。find
find /var/tmp -mindepth 1 -type d -ctime +-1 -print
破壊的なタスクを実行する前に:
find /var/tmp -mindepth 1 -type d -ctime +-1 -exec rm -rf {} +
+
(代わりにrmを複数回呼び出す必要がないようにを使用します。(またはusing\;
の代わりにusingを見ることもできますが、この場合はこのディレクトリの下のファイルを削除してすぐにそのままにしておく必要があります)-delete
-exec rm....
find
/var/tmp
答え2
このコマンドは、最後の日に作成されたディレクトリを削除します。
find /var/tmp -type d -ctime -1 -exec rm -rf {} \;