投稿

7月, 2013の投稿を表示しています

【Linux】Linuxでディレクトリ毎にzip圧縮する

Linuxで、ディレクトリ毎にzip圧縮したかったのだが、一発でできるようなコマンドが無かったため、ディレクトリ毎にzip圧縮するシェルスクリプトを作ってみた。

適当なファイルを作って、下記のスクリプトを書いて、ファイル名を「zip_per_directory.sh」みたいな感じにして保存する。
#! /bin/sh IFS=" " for dir in `find ./ -type d` do dir=`basename $dir` if [ $dir != `basename ./` ] then zip -r $1$dir.zip $1$dir fi done 次に、そのままだと実行できないので実行権限を与える。
$ chmod +x zip_per_directory.sh 後は、圧縮したいディレクトリが入っている場所にさっき作ったファイルを移動して、ターミナルでディレクトリを移動してから実行する。
$ cd 圧縮したいディレクトリが入ってるパス $ ./zip_per_directory.sh 実行すると、カレントディレクトリにあるディレクトリをすべて自動で圧縮してくれるので、終わるまで待つだけ。

圧縮する際にはそのディレクトリにシェルスクリプトのファイルを移動しなければならないが、ディレクトリを右クリックして圧縮するという作業を何回も繰り返すよりは楽にできるのでは無いかと思う。