Bry*_*mas 8 linux zip command-line
假设您从一个未压缩的目录开始,其A结构如下:
$ tree A
A
??? inner_dir
??? file1.txt
??? file2.txt
1 directory, 2 files
Run Code Online (Sandbox Code Playgroud)
现在假设你得到了两个 zip 文件1.zip,它们2.zip来自A. 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
Run Code Online (Sandbox Code Playgroud)
什么命令我可以用它来编程重构最初的解压目录A从组合1.zip和2.zip?
上下文:当从 Google Drive 导出一个大目录时,内容被分成一组 2 个或更多的 zip 文件。每个 zip 文件都包含文件的一些子集,这些子集合并后会重新构成原始目录。哪些文件包含在哪些 zip 中似乎或多或少是随机的。我正在寻找一种可以推广到 n > 1 个 zip 文件的解决方案,而不仅仅是 2 个文件的特殊情况。
将要解压缩的文件集移动到专用目录,然后使用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.
Run Code Online (Sandbox Code Playgroud)
查看:
$ tree combined
combined
??? A
??? inner_dir
??? file1.txt
??? file2.txt
2 directories, 2 files
Run Code Online (Sandbox Code Playgroud)