MacOS X編 小ネタいろいろ

今回は、ちょっとした小ネタです。MacOS X Tiger(10.4)/Leopard(10.5)/Snow Leopard(10.6)以降で動作します。多分、LinuxやFreeBSDなどのUNIXでも多分動作するはずです。便利かもしれないけど、しくじると痛いコードもありますが。

まず、特定の拡張子を持つファイルをコピーするコマンドです。同じ階層にある場合ならcpコマンドでもよいのですが、フォルダも自動的に作成し階層を保ったままコピーしたいことがあります。例えば少しでもFTPによる転送時間を速くしたい場合などに有効です。(私のサイトのハイビジョン映像素材など巨大なデータがある場合にHTMLファイルだけを全て入れ替えたいときに使いました)


●拡張子がjpgの画像ファイルだけをコピーする
rsync -rv --include "*/" --include "*.jpg" --exclude "*" コピー元のパス コピー先のパス

●拡張子がgifの画像ファイルだけをコピーする
rsync -rv --include "*/" --include "*.gif" --exclude "*" コピー元のパス コピー先のパス

●拡張子がpngの画像ファイルだけをコピーする
rsync -rv --include "*/" --include "*.png" --exclude "*" コピー元のパス コピー先のパス

●拡張子がhtmlのファイルだけをコピーする
rsync -rv --include "*/" --include "*.html" --exclude "*" コピー元のパス コピー先のパス


次はMacOS Xならではの.DS_Storeなど.で始まるファイルを削除するコマンドです。
●.で始まるファイルを削除 find ./ -name ".*" -exec rm {} ;

最後はMacOS X Leopardでは「コマンドキー+Shiftキー+3」で画面キャプチャすることができますが、その際透明な部分まで保存されてしまいます(確かコマンドラインから何か入力すると、この透明部分の設定は変更できるみたいですが)。この透明な部分をPhotoshopで削除するスクリプトが以下のものです。前面にある時にキャプチャーした場合と、背面でキャプチャーした場合で透明部分のサイズが異なります。

●前面キャプチャーの場合
var docW = activeDocument.width.value; // 横幅
var docH = activeDocument.height.value; // 縦幅
var cTop = 25;
var cLeft = 40;
var cRight = docW - 40;
var cBottom = docH - 55;
activeDocument.crop([cLeft,cTop,cRight,cBottom]);

●背面キャプチャーの場合
var docW = activeDocument.width.value; // 横幅
var docH = activeDocument.height.value; // 縦幅
var cTop = 10;
var cLeft = 20;
var cRight = docW - 20;
var cBottom = docH - 30;
activeDocument.crop([cLeft,cTop,cRight,cBottom]);


[サンプルをダウンロード]