GoogleドライブやDropboxで生成される不可視ファイル「Icon?」を指定ディレクトリ以下から全消去するクイックアクションを作った(Macユーザー向け)

最終更新: 2020/02/20/公開: 2020/01/16
この記事は 2020年1月16日 に投稿されました。
内容が古いかもしれません。ご注意ください。
※最後に更新されたのは 2020年2月20日 です。

なんでそんなことをしようと思ったのか

GoogleドライブとかDropboxから持ってきたファイルの中にかならずいる「Icon?」という不可視ファイル……検索しても役割が書いてあるページにすぐたどり着かなくて今の所なんなのかわかっていないのですが、こいつをファイル転送クライアント経由でサーバー上にアップロードするとパーミッションが堅くてディレクトリが消せなくなってしまうということがあり非常にめんどくさいとなったからでした。

コマンド叩ける人は多分SSHで接続してsudo使って削除とか、できるのかな?と思うんですが……この記事をアップしている時点でSSHによる削除は試せていません、、なので CUIが苦手な技術レベルの方向けの対処療法的なものです。

どうするのか

Automatorを使います。下記2ステップの単純なクイックアクションを作成します。

  1. 現在のディレクトリパスを取得し
  2. シェルスクリプトでそのディレクトリの中から「Icon?」を探し出し消す

参考URL

Automatorで現在のフォルダ内に「新規フォルダを作製」Macで日付入りの新規フォルダを簡単に作る方法
→ カレントディレクトリの取得方法

たまごごはん

Automatorにおけるスクリプトの入出力
→ Automatorで変数を受け取る方法

Qiita @flasksrwさん

指定したディレクトリ以下の.DS_Storeを削除する
→ ターミナルでファイルを検索して消す方法

cly7796.net

処理内容

まず「クイックアクション」で新規作成します。
そのあと「ワークフローが受け取る現在の項目」を「ファイルまたはフォルダ」に設定

「AppleScriptを実行」を追加して下記コードを記入

on run {input, parameters}
tell application "Finder"
set currentPath to insertion location as text
set x to POSIX path of currentPath
end tell
return x
end run

「シェルスクリプトを実行」を追加して下記コードを記入

for f in "$@"
do
  cd $f
  find . -name 'Icon?' | xargs rm
done

保存したら使えるようになります。
フォルダを右クリックしたら右クリックメニュー内の「クイックアクション」に追加されているかと思います。

気をつけること

基本的に確認画面とかは無しで一気にファイルが消されるので、作ったら念のためどうでもいい場所で動作確認してから使ってください。トラブルに責任負えませんので……