フォルダがあり、working
その構造は次のとおりです。
working/
100/
1/
2/
3/
200/
1/
2/
3/
300/
1/
2/
3/
各1
2
3
フォルダには約1000個のファイルがあります。
1
2
3
フォルダ内のファイルを別々に圧縮したいです。 zipには最上位ディレクトリを含めないでください。どこにでもジッパーを取り付けてください。たとえば、フォルダの下にファイルがある場合は、foo1
zip形式でなければならず、fooファイルのみが必要です。foo2
foo3
1
1
答え1
単純なループがトリックを実行します。
cd working
for dir in */*/; do
[ -e "$dir/files.zip" ] || # skip directories where the zip already exists
( cd -- "$dir" && zip -r files.zip .)
done
zipは、そのディレクトリで繰り返されたときに構築されるzipファイルをスキップするのと同じくらいスマートです。他のいくつかのアーカイブプログラムは、構築中のアーカイブに構築中のアーカイブを埋めようとします。