合并/组合从 Mac 上的 Google 云端硬盘下载的多个 ZIP 文件

cre*_*t0r 7 macos terminal zip file google-drive-api

从 Google 云端硬盘下载大文件夹(>50 GB)时,它会将下载内容分割成多个较小的 ZIP 文件(每个大约 2 GB),这使得原始主文件夹与其中的所有文件再次放在一起成为一场噩梦。他们正确的子文件夹。

\n

如何在 Mac 上合并/组合从 Google 云端硬盘下载的多个 ZIP 文件?

\n

这是一个关于此问题的现有线程,由于我是 stackoverflow 的新手,因此我无法回复:Combine the split zip files downloads from Google Drive

\n

在这个线程中,他们提到了这个命令:

\n
mkdir combined\nunzip \'*.zip\' -d combined\n
Run Code Online (Sandbox Code Playgroud)\n

但是,如何使此命令仅解压缩并合并下载文件夹中的特定 ZIP 文件,而不是整个驱动器上的所有 ZIP 文件?该命令似乎没有指定下载文件夹,这让我担心它会解压缩并合并整个驱动器上的所有文件。我的硬盘上有一些我不想解压的 ZIP 文件。另外,有人提到此命令不适用于其他语言的字符(例如 \xc3\xbb、\xc3\xa5、\xc3\xa4、\xc3\xb6),那么我如何使其适用于我的瑞典语文件名?

\n

M. *_*ang 17

您提到的这两行只会将当前目录.zip中的所有文件解压缩到名为 的文件夹中。这是它的作用:combined

  • mkdir combined创建一个名为 的新目录combined
  • unzip '*.zip' -d combined选择所有以 结尾的文件.zip,并将其内容放入“combined”中。

这两行都仅在当前目录上运行(这就是为什么它被称为“当前工作目录” - 终端中的大多数命令不会尝试爬过整个驱动器)。

由于您提到 ZIP 文件位于该Downloads文件夹中,因此您应该首先使用cd如下命令更改当前目录:

cd Downloads
Run Code Online (Sandbox Code Playgroud)

您还提到了非 ASCII 文件名。在这种情况下,“The Unarchiver”效果更好。除了图形应用程序之外,它还有一个名为 的命令行实用程序unar你可以在这里下载。对于unar,它不能一次获取多个文件(据我所知),因此您必须构建如下循环:

for archive in *.zip
do
unar "$archive" -o combined
done
Run Code Online (Sandbox Code Playgroud)

总结一下,这是要运行的所有内容:

cd Downloads
mkdir combined
for archive in *.zip; do unar "$archive" -o combined; done
Run Code Online (Sandbox Code Playgroud)

您的文件将全部解档到Downloads/combined.

顺便说一句,欢迎来到 Stack Overflow。