次の構造の非圧縮ディレクトリA
から始めたと仮定します。
$ tree A
A
└── inner_dir
├── file1.txt
└── file2.txt
1 directory, 2 files
ここで、A
から派生した2つのZipファイル1.Zip
と2.Zip
が与えられたと仮定します。 1.Zip
にはfile1.txt
のみが含まれ、2.Zip
にはfile2.txt
のみが含まれます。
# -l flag simply lists file contents
$ unzip -l 1.Zip
Archive: 1.Zip
Length Date Time Name
--------- ---------- ----- ----
0 2017-09-30 21:49 A/
0 2017-09-30 22:27 A/inner_dir/
0 2017-09-30 21:49 A/inner_dir/file1.txt
--------- -------
0 3 files
$ unzip -l 2.Zip
Archive: 2.Zip
Length Date Time Name
--------- ---------- ----- ----
0 2017-09-30 21:49 A/
0 2017-09-30 22:27 A/inner_dir/
0 2017-09-30 22:27 A/inner_dir/file2.txt
--------- -------
0 3 files
1.Zip
と2.Zip
の組み合わせから元の解凍されたディレクトリA
をプログラムで再構成するには、どのコマンドを使用できますか?
Context: Googleドライブから大きなディレクトリをエクスポートする場合、コンテンツは2つ以上のZipファイルのセットに分割されます。各Zipファイルには、ファイルのサブセットが含まれています。これらのサブセットをまとめて取得すると、元のディレクトリが再構成されます。どのファイルにどのZipが含まれているかは、多かれ少なかれランダムに見えます。ちょうど2つのファイルの特別な場合だけでなく、n> 1のZipファイルに一般化するソリューションを探しています。
解凍するファイルのセットを専用ディレクトリに移動してから、unzip
を使用します。
$ unzip '*.Zip' -d combined
Archive: 1.Zip
creating: combined/A/
creating: combined/A/inner_dir/
extracting: combined/A/inner_dir/file1.txt
Archive: 2.Zip
extracting: combined/A/inner_dir/file2.txt
2 archives were successfully processed.
小切手:
$ tree combined
combined
└── A
└── inner_dir
├── file1.txt
└── file2.txt
2 directories, 2 files