• ベストアンサー

特定のフォルダ内のファイルをゴミ箱へ

環境はiBOOK G4 OS10.4.9です。 PagesenderというFAX機能のアプリケーションを 使用しているのですが、FAXを受信するたびに 特定のフォルダ内にファイルが作成されます。 ある時、何気にそのフォルダを開いてみたら 数千というファイルが出来ており、びっくりしました。 そのほとんどのファイルが必要ない物でしたのでゴミ箱に 入れたのですが、数が数だけにその作業も結構時間がかかり、 「特定フォルダ内のファイルを作成日より数ヶ月後に自動的に ゴミ箱に移動できないか」と思いました。 前から気になっていたapple scriptで上記の作業はできるのでしょうか。できるようでしたら、この機会にapple scriptを勉強したいので 参考になるサイトがあればお教えください。よろしくお願いいたします。

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

  • ベストアンサー
  • sevenless
  • ベストアンサー率66% (374/561)
回答No.2

こんなのはどうですか? set File_List to {} set Target_Folder to choose folder set Seconds_since_creation to 86400 tell application "Finder" set File_List to entire contents of Target_Folder repeat with i from 1 to count of File_List if ((current date) - (creation date of item i of File_List)) > Seconds_since_creation then delete item i of File_List end if end repeat end tell 実行するとフォルダ選択のダイアログが出て、そのフォルダの中にある作成後24時間以上経過したファイルが全てゴミ箱行きになります。経過時間はSeconds_since_creation に秒数で指定してください。フォルダ名をあらかじめ特定したスクリプトを起動項目に入れておけば、起動する度にフォルダが掃除されます。cron を使って定期実行することも可能です。 ちなみに Hazel という PreferencePane を使っても条件にマッチするファイルを定期的にゴミ箱に移動したりできます。 http://www.noodlesoft.com/hazel.php

pekochanno1
質問者

お礼

ご回答有難うございます。 全くの素人なのでみても分からないのですが、 使えそうな気がします。 多分フォルダ名を記入するのだと思いますが、 どこに追記するのでしょうか。 またcron を使って定期実行も興味があります。 お時間があれば引き続きよろしくお願いいたします。

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

その他の回答 (10)

noname#164148
noname#164148
回答No.11

まず、以下の説明はAppleScriptではありません。ターミナルを使ったシェルスクリプトの説明に近い物です。 また、作成日と変更日が違っていて、どうしても作成日のファイルが対象ならば、以下の説明は無駄です。 find /Library/Logs/Console/501/ -mtime +4 -delete このコマンドは変更日が4日以上前のコンソールログを削除します。 ですので「/Library/Logs/Console/501/」の部分をPagesenderがファイルを作るフォルダに変更し、-mtime +4の「4」を24時間単位で希望の整数にすることで、指定したフォルダ内にある変更日が一定期日より前のファイルが削除できます。 アプリケーション->ユーティリティ->ターミナルを開いて 1.cd /etc/とタイプします。 2.sudo nano daily.localとタイプします。 最初にsudoコマンドを使用する場合は、3行か4行の警告が表示され、その下に「Password:」と表示されます。この「Password:」に続けてpekochanno1さんのログインパスワードをタイプします。 3.開いた画面に上記のfindの例をコピー&ペーストしてから、左右の矢印キーで移動し、「/Library/Logs/Console/501/」の部分をPagesenderがファイルを作るフォルダに変更(UNIX形式で記述)し、-mtime +4の「4」を24時間単位で希望の整数にします。 4.コントロールキー+oキー(アルファベットのオー)を押し、コントロールキー+x(アルファベットのエックス)を押します。 5.これで「/etc/」というフォルダに「daily.local」というファイルができているはずです。「ls -l /etc/daily.local」とタイプすると、ファイルができているかどうかが確認できます。 以上で、Mac OS Xが一日に一回行う(はずの)メンテナンススクリプトの実行とともに、Pagesenderがファイルを作るフォルダの中にある、変更日が一定期間より前のファイルは削除されます。 ちなみに、「(はずの)」と書いたのは、状況によってはメンテナンススクリプトが一日に一回ではないタイミングに行われる場合があるという意味です。 cronを使った定期実行はMac OS X Tiger(10.4.x)以降、Launchdと呼ばれるものに置き換えられました。cronタブの編集等をしなくても、上記だけで定期実行ができるようになっています。

全文を見る
すると、全ての回答が全文表示されます。
  • sevenless
  • ベストアンサー率66% (374/561)
回答No.10

なるほど。それもそうですね。 > この「2ヶ月」とか「2週間」を変数や計算式で指定できたら便利なのですが。 > そんな機能を拡張するPlug-inなどがあっても良さそう。 については、 http://web.mac.com/johancarlsson/Site/Actions.html (スマートフォルダの内容を取得するアクション) を使えば可能です。 スマートフォルダならば、特定フォルダの中の任意の日数、週数、月数、年数以内に作成されたファイルを選び出すことができます。でもやはり任意の日数「以前」に作成されたものだけ集めるのはできないんですよね。

全文を見る
すると、全ての回答が全文表示されます。
  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.9

「回答者同士のやりとり」になりそうですが・・・ >検索条件として「作成日」が指定の期日「より前」にすれば は指定の期日が固定されるので書き換えないといけないような気がします。 フォルダの中の、作成日が2ヶ月以内のファイルを別のフォルダに退避させて 元フォルダの中身をゴミ箱に入れ、退避させていたファイルを戻す。 しか無さそうに思います。 この「2ヶ月」とか「2週間」を変数や計算式で指定できたら便利なのですが。 そんな機能を拡張するPlug-inなどがあっても良さそう。 また、実際にアプリにしてログイン項目に入れてみましたが、起動中にイライラ する人には向いていないですね。 なお、予めお断りしておきますが、私はAuotmatorは5回くらいしか使ったこと無いです(;_;)

全文を見る
すると、全ての回答が全文表示されます。
  • sevenless
  • ベストアンサー率66% (374/561)
回答No.8

OS 10.5.2 ではエラーが出て実行できなかったのですが、別の OS 10.4.11 マシンで試したところ「Finder 項目を検索」→「ゴミ箱に入れる」のワークフローで Automator を使った自動化が可能でした。ということで、OS 10.4.9 でも可能かもしれません。 「Finder 項目の検索」で対象フォルダを指定し、検索条件として「作成日」が指定の期日「より前」にすれば、お望みのことができると思います。なぜか OS 10.5.2 の Automator では日付「以前」「以後」の設定だとエラーが出ます。「2ヶ月以内」とか「2週間以内」などなら実行が可能なのですが。

全文を見る
すると、全ての回答が全文表示されます。
  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.7

2ヶ月以前ならAuotmatorだけでもできそう。

全文を見る
すると、全ての回答が全文表示されます。
  • sevenless
  • ベストアンサー率66% (374/561)
回答No.6

「Auotmator だけではできない」というのは質問者さんの「Automatorで細かな設定ができるのでしょうか。」という補足質問にたいする直接の回答だと思いますが。質問者さんがみすみす無駄な試行錯誤をするのを見逃すわけにもいきませんから。 > 逃げを打つのなら、AppleScriptを書いて、それをAutomatorのアクションに取り込むほうに、走りますよ。 それが無意味なことはお分かりですよね。

全文を見る
すると、全ての回答が全文表示されます。
  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.5

> というか、時間があっても Automator だけでは不可能ですよね。 OKWaveの「禁止事項」より抜粋: ■回答ではない回答 質問と関係ない内容や雑談、便乗した質問、回答者同士のやりとりや議論、個人的なメッセージなど、質問に対する回答として成立しない内容を回答欄に投稿することは、ご遠慮ください。 ということで、回答に対する批判、評価は、ご遠慮ください。 世の中、なにごとも妥協は避けて通れません。100%希望どおりのことを実現するために、長時間の学習を行うのか、そこそこで妥協して、短時間で実現するかの選択は、各自の判断にまかせるべきです。 すくなくとも、返答に窮して、逃げを打ったような印象を与える表現は、いただけません。 逃げを打つのなら、AppleScriptを書いて、それをAutomatorのアクションに取り込むほうに、走りますよ。

全文を見る
すると、全ての回答が全文表示されます。
  • sevenless
  • ベストアンサー率66% (374/561)
回答No.4

> そういう時間はありません。 というか、時間があっても Automator だけでは不可能ですよね。そもそものリクエストが「特定フォルダ内のファイルを作成日より数ヶ月後に自動的に ゴミ箱に移動できないか」というものですから、それに合う解決法を示された方がいいと思いますよ。 > 多分フォルダ名を記入するのだと思いますが、どこに追記するのでしょうか。 choose folder の代わりに alias "Macintosh HD:Users:user_name:Faxes:" などとしてください。"" の中は対象フォルダのフルパス名です。フォルダ名の区切りと最後に : を付けるのと最初に alias を付ける点に気をつけてください。 > またcron を使って定期実行も興味があります。 これはスクリプトを実行用アプリケーションとしてセーブしておき、ターミナルで crontab というコマンドを使って実行条件を設定します。これは UNIX の話になるので、ここで一から説明するのは無理があります。ある程度 AppleScript や UINX コマンドを試してみて、基本が理解できた上でまだ不明な点があれば改めて質問してください。

全文を見る
すると、全ての回答が全文表示されます。
  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.3

> お時間がありましたら引き続きよろしくお願いいたします。 そういう時間はありません。 AppleScriptをこれから勉強したいという意欲があるかたが、それでは困ります。一を聞いて十を知る姿勢で、臨んでいただきたいと思います。 試行錯誤で、いろいろ応用にチャレンジしてはいかがですか?

全文を見る
すると、全ての回答が全文表示されます。
  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.1

AppleScriptでもできますが、Automatorでワークフローを作るほうがかんたんで、しかも高速です。 (1) アプリケーションフォルダにある「Automator」を起動します。 (2) 左側の「ライブラリ」リストの、Finderをクリックします。 (3) 「アクション」リストから「指定された Finder 項目を取得」を探しだし、右側のブランクのスペース(ワークフロー)にドラッグします。「+」ボタンを押して、オープンダイアログを開き、対象のフォルダを選択し、登録します。 (4) 「アクション」リストから「フォルダの内容を取得」を探しだし、ワークフローにドラッグします。なお、ワークフローは、上から順番に実行されるので、ドラッグする位置を間違えないようにしてください。 必要に応じて「見つかった各フォルダからも取得する」のチェックを入れます。 (5) 「アクション」リストから「ゴミ箱に入れる」を探しだし、ワークフローにドラッグします。 (6) 右上の「実行」ボタンを押して、間違いなく実行されるか試験します。 (7) ファイルメニュー「保存」を選びます。「フォーマット:」を「アプリケーションにして、保存します。 (8) システム環境設定>アカウント>ログイン項目を開いて、今作成したAutomatorアプリケーションを登録します。iBookを起動するたびに、自動で実行してくれるようになります。 Automatorには、ゴミ箱を空にするアクションがありません。おそらく危険度が高いので、作らなかったのでしょう。じっさい、目的以外のファイル・フォルダを削除してしまう可能性が高いので、ゴミ箱は手動で空にするほうがいいと思います。

pekochanno1
質問者

お礼

ご回答有難うございます。 Automatorも使ってみたいと思っていたのですが触らずにいた代物です。 アドバイス通りしてみたら確かにゴミ箱に移動できるのですが、実際 フォルダ内には捨てたくないファイルもあります。作成後約1ヶ月後 ぐらいに必要なくなるのでAutomatorで細かな設定ができるのでしょうか。お時間がありましたら引き続きよろしくお願いいたします。

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

関連するQ&A

  • Appleスクリプトでフォルダ内ファイルを開く方法

    フォルダ内にエクセルファイルが1000個程あり、 そのエクセルファイルを一つずつ開いて、 別のファイルにそのファイルの値をコピーするということをやりたいと思います。 別のファイルにそのファイルの値をコピーするというのは、 自分でも何とかできそうなので、 (1)ファイルが入ったフォルダを、ダイアログで指定する方法 (2)フォルダ内のエクセルファイルを順番に開いて、作業が終わったら閉じる方法 のAppleスクリプトでの記述方法を、教えていただけないでしょうか? Windowsのエクセルファイルでマクロを作成したのですが、 Macでは動かず、調べるとAppleスクリプトで作成するということが分かりましたが、 そこから先が、本当にお手上げ状態です。 どうぞよろしくお願いします。

  • BAKファイルがゴミ箱にたくさんありました。

    知らぬ間に、BAKファイルがゴミ箱にたくさんありました。OUTLOOK EXPRESSを使用していますが、ゴミ箱にあったファイル名はOUTLOOKEXPRESSのフォルダ名で、フォルダの数だけありました。削除しても問題ないのでしょうか?

  • 「送る」メニューからファイルを特定のフォルダへ移動させたい

    Windows Vistaを使用しています。分からないことがあるので教えてください。 エクスプローラの右クリックメニュー「送る」から、特定のフォルダへ ファイルやフォルダを移動させたいのですが SendToにフォルダのショートカットを追加するだけではただコピーされるだけで、移動はできませんでした。 > Lily Windows Tips フォルダに入ったファイルをひとつ上の階層に移動するスクリプト > http://lil2.blog115.fc2.com/blog-entry-11.html 既にこのスクリプトを導入しているのですが、特定のフォルダに移動させる場合はどのような記述が必要なのでしょうか。 教えてください、よろしくお願いします。

  • ファイルやフォルダをごみ箱に移動 その2

    直下の質問「ファイルやフォルダをごみ箱に移動」をさせていただいた者です。 「ファイルやフォルダをごみ箱に移動」を行うActiveX DLLを作成して、無事動作させることができました。が、新しい問題が発生してしまいました。 作成したルーチンは、以下の通りです。 ----- Public Sub GoToTrash(inStrItemNames As String, Optional inBlnConfirm As Boolean) Dim ShellOp As SHFILEOPSTRUCT Dim flg As Integer ' 確認メッセージの表示? If IsMissing(inBlnConfirm) Then inBlnConfirm = False If inBlnConfirm Then flg = FOF_ALLOWUNDO Else flg = FOF_ALLOWUNDO Or FOF_NOCONFIRMATION End If With ShellOp .hwnd = 0 .wFunc = FO_DELETE .pFrom = inStrItemNames .fFlags = flg End With ' ごみ箱へ削除実行 SHFileOperation(ShellOp) End Sub ----- これをActiveX化して、ASPから呼び出すと、ちゃんと動作して、指定されたファイルはごみ箱に直行します。しかし、存在しないファイルなどが指定されると、たとえ、FOF_NOCONFIRMATIONを指定したとしても、確認のDialogBoxが表示されてしまうようです。(WSHで確認しました) こうなると、ASPではスクリプトエンジンが処理を中断してしまうようで、以降再起動しない限り、ASPページが全く表示されなくなってしまいます。 なにか良い手段は無いでしょうか?

  • ファイルメーカーから特定のフォルダーを開く

    ファイルメーカー6である情報管理のプログラムを作っています。 ある特定のフィールドと同一のフォルダを開くスクリプトの作成は可能でしょうか。  たとえば、あるデータベースには氏名というフィールドがあります。コンピュータのドライブDには、氏名毎のフォルダーがありその人の画像データがたくさん入っています。  Aさんのデータを表示しているときに、あるボタンを押すと、Aという名のフォルダを開くという操作をしたいのです。  本当はAさんのデータの画面で、その画像をサムネイルの形で表示させたかったのですが、それをすると極めて重くなってしまいあきらめました。それで上記のようなことができないかと考えたわけです。  方法があれば教えてください。よろしくお願いします。

  • フォルダがゴミ箱に入らないし、削除もできない。

    フォルダを削除しようとすると 「*****を削除できません.指定されたファイルが見つかりません。」 パスとファイル名を確認してください。 とのメッセージが出てゴミ箱にすら入りません。 プロパティを見るとファイル数2とあるのですが、実際には何も入っておらず、メッセージに出るファイルを検索しても何も見つかりません。 宜しくお願いします。

  • ファイルが勝手にゴミ箱へ…

    パソコンのファイルが勝手にゴミ箱へ移動されていました。それもかなりの数のファイルです。 ただフォルダを確認すると3つのフォルダの中身がやられていました。 2つはブラウザからのダウンロード用フォルダとして、もう1つはグーグルドライブのローカルフォルダとして利用しておりました。 これは第三者から遠隔操作をされたのでしょうか? また、いつゴミ箱へ移動されたかや、アクセス元の確認などできませんか? ちなみにMacBookAirで起きました。 よろしくお願いします。

  • ゴミ箱を空に出来ないことについてです。

    念のためにアプリケーションフォルダをまるごと別のハードディスクにコピーしていましたが、不要になったので削除しようとしましたが、Windows Media Player だけ、「いくつかのファイルがロックされているので作業を進められない」との内容のメッセージが出て削除作業が進めれません。 ゴミ箱から削除するためにはどうしたらよいのか、おわかりになりましたら教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Mac
  • ごみ箱に知らないフォルダが!

    CD-Rからピクチャを保存していました。CD-RはMacで焼いたもので、ファイルは無事vistaに保存できたのですが、まだvistaに慣れていなくて、保存の時よけいなボタンを押してしまったらしく、ゴミ箱にたくさんフォルダができてしまいました。 中身のゼロのフォルダは間違って作ったものだと思うので削除しましたが、 desktop  種類:構成設定 Burn 174バイト というフォルダができてしまい、困っています。 見たことのないフォルダですし、もし削除してなにか重大なものを消してしまったらと思うと怖いです。 CD-Rから画像を保存していただけなんですが、このフォルダはなんなのでしょうか? フォルダの作成日はこのパソコンを買って設定した日付になっています。 よろしくお願いします。

  • フォルダをゴミ箱に移動するには?

    お願いします 昨日までデスクトップ上に作成したフォルダを右クリック→削除でゴミ箱に移動したのですが、今は移動せずに削除になってしまいます。 ファイルは移動するのですが… 何か設定を間違ってしまったのでしょうか?