
コマンドラインでディレクトリ内のすべてのファイルを圧縮する
これは、ディレクトリ内のすべてのファイルを圧縮してzipアーカイブに変換する、非常に優れたターミナルコマンドです。ここでは2種類のバージョンを紹介します。1つは元のソースファイルを削除して圧縮ファイルのみを残すコマンド、もう1つは圧縮されていないソースファイルをそのまま残すコマンドです。これはMac OS XとLinuxでテスト済みで、動作します。
ディレクトリ内のすべてのファイルを圧縮し、ソースファイルを削除する
このバージョンでは、現在のディレクトリ内のすべての項目が圧縮され、元のソースの圧縮されていないファイルが削除されます。
for item in *; do zip -m "${item}.zip" "${item}"; done
* は現在のディレクトリ内のすべてのファイルを表すので、コマンドを実行する前に圧縮したいディレクトリにいることを確認してください。また、「pwd」コマンドを使えば、作業中のディレクトリをいつでも再確認できます。
StevenFさんの記事を読んで試してみたところ、平均で66%圧縮できたそうです。これはかなり大きな削減効果です。ダウンロードフォルダやその他のアーカイブフォルダへのアクセス頻度が低い場合、このコマンドはディスク容量を大幅に節約できます。ただし、ファイルを圧縮するため、頻繁にアクセスされるディレクトリでは使用しない方が無難です。
ディレクトリ内のすべてのファイルを圧縮し、元のファイルを維持する
上記のコマンドを使うと、ディレクトリ内のすべてのファイルを圧縮しながら、元のファイルやフォルダは圧縮されていない状態に保つことができます。コマンドは実質的に同じで、-mフラグを省略するだけです。
for item in *; do zip "${item}.zip" "${item}"; done
これで、現在の作業ディレクトリ (pwd) 内のすべてのファイルが圧縮され、元のソース ファイルも圧縮されずにそのまま残ります。
これらのコマンドは、Mac OS X および Linux で動作し、おそらく他の Unix 系でも動作します。
興味があれば、その他のコマンドラインのヒントを確認してください。