フォルダ内の大量のファイルから一気にリソースフォークを削除する方法。
- rsyncを使う
リソースデータを除去したいファイルがたんまり入ったフォルダの名前を「/path/to/src_folder」、除去後のファイルを格納するフォルダが「/path/to/dst_folder」であるとする。
$ rsync -av /path/to/src_folder/ /path/to/dst_folder/
のようにrsyncすることで、リソースフォーク部分を取り除いてデータフォークだけを目的のフォルダ内にコピーすることができる。(-E オプションを付けるとリソースフォークも一緒にコピーできる。あたりまえだが、今回は付けてはいけない。途中経過を気にしないのであれば、vオプションも省いてよい。)
- なぜそんな必要が?
-
Webサーバーの引っ越しで、データを移し替えていたところ怪現象に遭遇。 MacではメジャーなFTPソフト、アヒル隊長こと「CyberDuck」で、サイト全体のデータファイルをダウンロードしたのだが、サーバー上では35.1MB程度のデータ量だったのが、ダウンロードしたフォルダの容量をチェックすると348.9MB?! ファイル数は代わらないが、なんと容量が10倍近くに膨れ上がっていた。 原因を調べるため、テキストファイルの一部について属性を見てみると、
$ ls -@l robots.txt -rwxr-xr-x@ 1 poohtaro staff 129 5 31 2007 robots.txt com.apple.FinderInfo 32 com.apple.ResourceFork 117265
なぜかリソースフォークが……
どうやらリソースデータはカスタムアイコンのようだ。CyberDuckが付けたのか? しかも全てのファイルに? そりゃデータ量も10倍に肥大化するわな。なんという余計なお世話。その数2,700もあるファイルのカスタムアイコンをいちいちFinderから手作業で取り除いていたら日が暮れるのでrsyncを使う方法を試してみたというわけ。