-ctime +0を使用してテストするコマンドを見つけます。

-ctime +0を使用してテストするコマンドを見つけます。

次のコマンドは、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 1find

 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

おすすめ記事