【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
実行すると、カレントディレクトリにあるディレクトリをすべて自動で圧縮してくれるので、終わるまで待つだけ。

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


コメント

人気の投稿

[Qiita] Google Playのクローズドベータ版テストでメールアドレスを指定して公開する

[Qiita] Androidの実機でPCのlocalhostに接続したり、Webページの要素を検証する

[Qiita] AppCompatのAlertDialogのテーマカラーを変える