フォルダごとzip、unzipするスクリプト
ubuntuで特定のディレクトリ配下をディレクトリ毎にzip、解凍するスクリプトを記載します。
環境:ubuntu18.04
ディレクトリ配下のディレクトリ毎にzipにするスクリプト
#! /bin/bash input_dir='/home/user/input' output_dir='/home/user/zip' cd $input_dir dir=$(ls -d */) for dir in $dirs do ret=$(dir%/) dirname="${input_dir}/${ret}" filrname="${output_dir}/${ret}.zip" zip -r $filename $ret done
処理は以下の流れです。
まずカレントをinput_dirに移動し、lsコマンドで配下のディレクトリの一覧を取得します。
lsコマンドで取得したフォルダ名を1つづつfor文でループし、%/で末尾の/を削除します。
最後にpathをくっつけて、zip化します。
ディレクトリ配下のzipファイルを全て別フォルダにunzipするスクリプト
#! /bin/bash iinput_dir='/home/user/zip' output_dir='/home/user/out' cd $input_dir files=`find $input_dir -name "*.zip"` for file in $files do echo $file unzip $file -d $output_dir done
処理は以下の流れです。
まずカレントをinput_dirに移動し、findコマンドで拡張子がzipのファイルの一覧を取得します。
findコマンドで取得したファイルを1つづつfor文でループしoutput_dirに解凍します。