特定の拡張子を持つファイルだけをコピーする (MacOS X (Leopard/Snow Leopard) )

今回は非常に短いネタです。MacOS X LeopardまたはSnow Leopardで使える方法です。
特定の拡張子を持つファイルだけをコピーするにはファインダの検索ボックスに.jpgと入力すればJPEG画像ファイルだけがリストアップされます。表示されたファイルを選択して、コピー先のフォルダにドラッグドロップすればコピーすることができます。簡単なフォルダ構成であれば、このような方法を使っている人も多いでしょう。また、スポットライトで検索してファイルを検索してコピーする方法もあります。

MacOS Xにはこれとは別にターミナルからUNIXコマンドを入力することで特定の拡張子を持つファイルだけをコピーする事ができます。まず、アプリケーションフォルダにあるユーティリティフォルダ内にあるターミナル.appを起動します。
例えばターミナルから

cp -p ~/imageData/*.jpg ~/myPhoto

とするとホームフォルダにあるimageDataフォルダ内にあるJPEG画像ファイルだけを、ホームフォルダ内にあるmyPhotoフォルダにコピーします。ただし、この方法ではフォルダはコピーされません。フォルダ内にあるJPEG画像ファイルもコピーしたい場合には以下のようにします。

rsync -rv --include "*/" --include "*.jpg" --exclude "*" ~/imageData/ ~/myPhoto

HTMLファイルだけコピーしたいなら以下のようにします。

rsync -rv --include "*/" --include "*.html" --exclude "*" ~/imageData/ ~/myPhoto

サーバーにHTMLファイルだけアップロードしたい場合に便利ですが、ほとんどのWeb制作ソフトには差分アップロード機能がついているので、使わないかもしれません。Web制作ソフトがない環境であれば有益かもしれません。
上記コマンドでコピー中のファイルが表示されるのが嫌な人は-rvを-rだけにしてください。

また、MacOS Xの場合、先頭が.で始まるファイルまでコピーされます。.で始まるファイルを削除するのであれば、以下のようにすればフォルダ内の全ての.で始まるファイルを削除できます。._DS_Storeとか削除したい場合に便利かもしれません(ツール等で削除した方が安全なので、無理して以下のようなコマンドでやる必要はありません)。

find ~/myPhoto -name ".*" -exec rm {} \;



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