• 締切済み

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

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

  • Mac
  • 回答数5
  • ありがとう数5

みんなの回答

  • 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

  • ファイルの自動削除について

    Canonの複合機(iRC5870N)からpdfスキャンをしたファイルが 共有サーバ(WindowsServer2003)の特定フォルダに転送されます。 スキャンしたらファイルを削除していけばよいのですが、 そのままにしているので、どんどん溜まっていきます。 そのため、スキャンした日から3ヶ月経過したら自動的にフォルダから 削除していくようにしたいのですが、よい方法があればご教授下さい。

  • 古くなったデータの自動削除方法

    「Windows2000severで特定の時間になると特定のフォルダ内(サブフォルダも含む)の**日以前のファイルを自動削除する」ということができる使いやすいツールを探しています。 尚、「特定の時間になると」という部分はタスクで設定すればよいと考えているのですが・・・ よろしくお願いします。  

  • 作成してから一定期間経過したファイルを自動的に削除するコマンド

    こんにちは。 LinuxのPCのsambaで共有したフォルダにTVチューナボードで録画したmpegファイルを保存しています。 録画しても結局見ない事もありまして、例えば録画して(mpegファイルが作成されて)から1週間経過したら拡張子.mpgのファイルを自動的に削除~ の様なことができると定期的にHDDの残り容量を調べてmpegファイルを手動削除、としなくてすむので便利だなと思うのですが、 ・特定のフォルダの中の ・特定の種類の拡張子を(この場合はmpegファイル、.mpg) ・ファイルの作成日から一定期間経過したら(例えば1週間、720時間) ・自動的に削除(コマンドをcronに登録するような) するような方法ご存じでしたらアドバイス頂けると助かります。 現在は rm -f /var/samba/*.mpg としてsambaフォルダの中の拡張子.mpgを全部削除、としてますが、これを例えば720時間(1週間)経過したもの、という条件をさらに追加するようなことは可能でしょうか?

  • 古いファイルを自動的に削除

    Windows7を使っております。 特定のフォルダにあるファイルを一定期間(例えば一週間)過ぎたものから、自動的にに削除する方法は無いでしょうか? そのようなソフトでも、batファイルの作り方でもよいのでお願いいたします。 (ファイル名に日時を含ませることは可能です。)

  • phpでのログファイル自動削除について

    phpでのログファイル自動削除について 以下のような形式でdataフォルダ内にログファイルに日付をつけて 毎日いくつかファイルを保存させているのですが data/ a_20100914_a.dat b_20100914_b.dat c_20100914_c.dat どんどん蓄積していくために ある程度日数が経過した古いファイルを自動で削除させたいのですが (たとえば3日前のものは全部削除など、削除プログラム自体の呼び出しにはcronのwgetを使います) ファイルが生成された日付で判断させる言う方法もあると思うのですが、 出来ればファイル名で日付を使っているのでそれを利用して出来ないものかと思うのですが どのように記述すればよいのでしょうか。 削除させるプログラムを置く予定場所はdataフォルダからみて../の位置になります。 お手数をおかけしますがソースをご教授いただけますと幸いですm(__)m

    • ベストアンサー
    • PHP
  • バッチファイルで古いフォルダを削除する方法

    バッチファイルを利用して条件のあったフォルダを削除したいと考えています。 フォルダ郡は「20091020」「20090720」など作成された日付がそのまま 名前になっています。 自動的に作成するバッチは既にあるのですが、現状このままですと 増える一方になってしまいます。 そこで3ヶ月以上前(今日よりマイナス90日) などの条件に合致したすべてのフォルダを削除する記述を 現在のバッチファイルに追加したいのですが、記述方法が分かりません。 ご存知の方いらっしゃいましたらお力をお貸しください。 よろしくお願いいたします。

  • ファイルの自動削除方法について

    WindowsNTを使用しています。 フォルダ中のファイルで、更新日<処理日-12ヶ月のものを抽出し、削除候補リスト・テキストデータ(フォルダ名・ファイル名等)を出力します。 その削除候補リストを確認後、削除候補ファイルをバックアップし、自動削除を行います。 このような処理について、何か良い方法がありましたら教えて下さい。 以上、宜しくお願い致します。

  • フォルダ内のファイルは削除せずに、フォルダだけを削除するには?

    windows vistaを使用しています。 マイドキュメントの中にあるフォルダを削除したいのですが、そのフォルダの中にあるファイル(あるいはフォルダ)は削除せずに、フォルダだけを削除する方法はあるのでしょうか? 削除したいフォルダ内のファイルを一旦どこか別の場所に保存してから削除するしかないのでしょうか? 質問の意図がわかりくいかもしれませんが、参考になるような回答をいただけると嬉しいです。 よろしくお願いします。

  • Accessのフォーム上で指定ファイルの削除について

    Access2000を使用しています。 まず、現状を説明します。 1.メールで送られてきた3つExcelを特定のフォルダに   保存します(手作業) 2.このExcelファイルをフォーム上でマクロを使用して   インポートします 3.インポート後、Excelファイルを削除します(手作業) ここで質問です。 [3.]のExcelファイルを[2.]のインポート後、自動で 削除することが出来ませんか? 削除が出来ないのならExcelファイルが保存されている フォルダをインポート後、自動で開くことが出来ないで しょうか?教えてください。 勝手な事を申しますが、できればファイル削除方法と フォルダを開く方法の両方のやり方を教えてくだされば うれしいです。以上よろしくお願いいたします。

  • フォルダ配下にある全フォルダを削除したい

    Batファイルにて、特定のフォルダ配下にある全てのフォルダを削除したいのですが、フォルダ名に空白が含まれている場合、削除できません。 どんなフォルダ名のフォルダが存在するかわからないので、forコマンドを使って試行錯誤しましたが、うまくいきません。 特定のフォルダ自体を削除して、再作成するという方法もありますが、その方法以外でできないでしょうか?