zip
ファイル番号制限付きのを作成するには、どのコマンドを使用できますか?たとえば、5000ファイルのフォルダー(サブフォルダーなし)があるので、その数を分割してzip
、それぞれが500ファイル以下で構成される10個の個別のアーカイブを作成できるコマンドが必要です。
また、結果の10個のzip
ファイルを相互に接続したくないので、それらを個別に開くことができ、10個すべてを同時に開く必要はありません。
GNU Parallelを使用して、要素の数をジョブに制限したり、ジョブ番号(一意の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
タンデムでは、必ず特殊文字を含むファイル名が正しく処理されていることを確認します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加