プロが教える店舗&オフィスのセキュリティ対策術

findオプションで質問です。

7日以前のディレクトリ/ファイルを検索して消したいです。

find ~ -mtime +7 -type -df -exec rm -df {}

なんて感じで宜しいのでしょうか。
-df
というように、ディレクトリ/ファイルを両方いっぺんに
指定できますか?
宜しくお願いいたします。

A 回答 (3件)

-typeの後ろに-は要りません


rmでディレクトリを削除するなら-dではなく-rを使うべきです
-dは意味を理解して使ってください

find ~ -mtime +7 -type f -or -type d -exec rm -rf {} \;

この回答への補足

ありがとうございます。
(正確にはHP-UX (UNIX) でした)

find /tmp/AAA -mtime +7 -type f -o -type d -exec rm -rf {} \;

と行ったのですが、
/tmp/AAA配下の、7日以前のファイル/ディレクトリを消したかった
のですが、
/tmp配下の「AAA」ディレクトリ自体が消えてしまいました。。。
どうすれば良いのでしょうか。。。

補足日時:2008/10/16 10:48
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/10/17 11:50

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2008/10/17 11:53

>/tmp/AAA配下の、7日以前のファイル/ディレクトリを消したかったのですが、


>/tmp配下の「AAA」ディレクトリ自体が消えてしまいました。。。

AAA配下のディレクトリを削除対象としたいのであれば以下の通りだけで十分。
/tmp/AAA/*

ディレクトリを削除したいのに配下に某か残っていれば削除できないので「type」を指定せずにrfで再起的にすべて削除する方が理にかなっていると思いますが。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/10/17 11:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!