• ベストアンサー

findで7日前のディレクトリを検知、そのディレクトリを消したい。

findオプションで質問です。 7日以前のディレクトリ/ファイルを検索して消したいです。 find ~ -mtime +7 -type -df -exec rm -df {} なんて感じで宜しいのでしょうか。 -df というように、ディレクトリ/ファイルを両方いっぺんに 指定できますか? 宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#208124
noname#208124
回答No.1

-typeの後ろに-は要りません rmでディレクトリを削除するなら-dではなく-rを使うべきです -dは意味を理解して使ってください find ~ -mtime +7 -type f -or -type d -exec rm -rf {} \;

hostsmania
質問者

お礼

ありがとうございました。 find /tmp/AAA ! -path /tmp/AAA -mtime +7 -exec rm -rf {} \; で実行することにしました。

hostsmania
質問者

補足

ありがとうございます。 (正確にはHP-UX (UNIX) でした) find /tmp/AAA -mtime +7 -type f -o -type d -exec rm -rf {} \; と行ったのですが、 /tmp/AAA配下の、7日以前のファイル/ディレクトリを消したかった のですが、 /tmp配下の「AAA」ディレクトリ自体が消えてしまいました。。。 どうすれば良いのでしょうか。。。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • localica
  • ベストアンサー率52% (202/385)
回答No.3

>/tmp/AAA配下の、7日以前のファイル/ディレクトリを消したかったのですが、 >/tmp配下の「AAA」ディレクトリ自体が消えてしまいました。。。 AAA配下のディレクトリを削除対象としたいのであれば以下の通りだけで十分。 /tmp/AAA/* ディレクトリを削除したいのに配下に某か残っていれば削除できないので「type」を指定せずにrfで再起的にすべて削除する方が理にかなっていると思いますが。

hostsmania
質問者

お礼

ありがとうございました。 結局、-pathコマンドを利用して /tmp/AAAを除くやり方を採用いたしました。

すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

-or を使うときには優先順位に気をつけないといけないかもしれない.

hostsmania
質問者

お礼

ありがとうございました。 -oを利用すると、後ろに書いたものだけが適用されてしまいました。 優先順位に気をつけないとダメですね。 今回はtypeで指定せずに、全てrm -rfすることにしました。

すると、全ての回答が全文表示されます。

関連するQ&A