• 締切済み

フォルダ内の古いファイルを自動で削除する方法

Macの特定のフォルダ内に保存されているファイルで、追加日から3日以上経過しているものを自動で削除したいのですが、良い方法を教えてください。 保存フォルダ内にはサブフォルダがいくつかあり、Automatorで試したところ、フォルダ内のファイルは削除できましたが、フォルダ自体は削除されずに残ってしまいました。 Automatorでフォルダごと削除する方法があれば教えてください。 他の方法でも構いませんので、ご指導宜しくお願いします。

みんなの回答

  • ki073
  • ベストアンサー率77% (491/634)
回答No.5

度々すません。 妥協案ですが、 find ~/folder/* -type d -empty として、日付に関係なく空のフォルダを削除するのはどうでしょうか? 実害はないと思います。 不可視ファイルの.DS_Storeが更新日付の関係で残っている場合があります。 もし問題になるようでしたら、.DS_Storeを日付に関係なく削除してしまっても良いと思います。

  • ki073
  • ベストアンサー率77% (491/634)
回答No.4

No.3で書きましたが、よく考えるとフォルダはうまく消せないようです。 ファイルをゴミ箱に移動すると、それが入っているフォルダの更新日が更新されますので、フォルダが残ってしましました。 質問者さんが書かれている方法で問題がなければ、多少の危険性がありますが、その方が良いかもしれません。 質問者さんの書かれている方法で問題があるようでしたら、書き込んでください。もう少し考えてみます。 多分そんなに難しいことはないと思います。

  • ki073
  • ベストアンサー率77% (491/634)
回答No.3

No.1,2です。 こちらでfind ~/folder/* -mtime +3 でやってみましたが、最下層のファイルを変更してみると、その上二層くらいのフォルダの更新日は変更されましたが、その上は変更されていませんでした。その状態で実行してみますと、変更した新しいファイルを含めゴミ箱へ移動してしましました。 このような事態にならない条件か、そうなっても構わないのであれば良いのですが。 後半の 「シェルスクリプトを実行」 コマンドとして find ~/folder/* -type d -empty -mtime +3 「ファインダ項目をゴミ箱に入れる」 を何度か続けていれておくと、一層ずつ削除していくので安全かと思います。 警告はでますが、問題なく実行はされます。

  • ki073
  • ベストアンサー率77% (491/634)
回答No.2

No.1です。 最初の ファイルの場合は日付だけを頼りにして削除... はファイルではなくフォルダでした。訂正します。

  • ki073
  • ベストアンサー率77% (491/634)
回答No.1

ファイルの場合は日付だけを頼りにして削除すると中身のファイルが新しいのに消してしまう場合があります。 入れ子になっている場合はそうなります。 これを防ぐために中身が空になっているものだけを削除した方がよいと思います。 やり方ですが、 「シェルスクリプトを実行」 コマンドとして find ~/folder/* -type f -mtime +3 「ファインダ項目をゴミ箱に入れる」 「シェルスクリプトを実行」 コマンドとして find ~/folder/* -type d -empty -mtime +3 「ファインダ項目をゴミ箱に入れる」 で 前半は3日たったファイルをゴミ箱へ 後半は空で3日たったフォルダをゴミ箱へです。 ~/folder/*の部分は、削除したいフォルダを指定してください。 findコマンドを検索するとコマンドの書き方がわかります。 フォルダが入れ子になっている場合は、一回の実行では残るかもしれません。後半だけ何度か実行すると消えると思います。

maokongreen
質問者

補足

ki073様 いつもお世話になっております。 ご回答ありがとうございます。 ご指摘の通り、いくつかのフォルダはかなりの入れ子になっております。 findコマンドを検索していろいろ試してみたところ、typeの指定をせずに find ~/folder/* -mtime +3 として、ディレクトリを検索してからAutomatorでゴミ箱に入れる方法で一発で削除できたのですが、この方法でも大丈夫でしょうか? お時間がございましたら引き続きご指導いただけますようお願いいたします。

関連するQ&A