zip
ファイル数に制限があるファイルを作成するには、どのコマンドを使用できますか? 5000個のファイルを含むフォルダ(サブフォルダなし)があるため、その数を分割し、zip
それぞれ500個以下のファイルを含む10個の別々のアーカイブを作成するコマンドが必要です。
zip
同時に、10個のファイルをすべて開くことなく個別に開くことができるように、結果の10個のファイルを互いにリンクしたくありません。
ベストアンサー1
あなたはそれを使用することができますGNUパラレルこれは、作業要素の数を制限し、作業番号(固有のzipアーカイブ名に対して)を提供するために行われます。
$ touch $(seq 20)
$ find . ! -name "*.zip" -type f -print0 | parallel -0 -N 5 zip arch{#} {}
adding: 1 (stored 0%)
adding: 10 (stored 0%)
adding: 11 (stored 0%)
adding: 12 (stored 0%)
adding: 13 (stored 0%)
adding: 14 (stored 0%)
adding: 15 (stored 0%)
adding: 16 (stored 0%)
adding: 17 (stored 0%)
adding: 18 (stored 0%)
adding: 19 (stored 0%)
adding: 2 (stored 0%)
adding: 20 (stored 0%)
adding: 3 (stored 0%)
adding: 4 (stored 0%)
adding: 5 (stored 0%)
adding: 6 (stored 0%)
adding: 7 (stored 0%)
adding: 8 (stored 0%)
adding: 9 (stored 0%)
$ ls
1 11 13 15 17 19 20 4 6 8 arch1.zip arch3.zip
10 12 14 16 18 2 3 5 7 9 arch2.zip arch4.zip
このオプションは-N 5
アーカイブあたりのファイル数を5に制限しzip
ます。{}
(文字通り{#}
、通話中にあなたが代用しない)は場所番号に置き換えられ、次arch1.zip
のような結果になります。arch2.zip
-print0
特殊文字を含むファイル名を正しく処理するには、オプションとオプションを一緒に使用してくださいfind
。-0
parallel