如何在MAC上拆分大文件?

Abb*_*avi 54 unix filesystems macos

我的 MAC 上有一个 5 GB 的文件,无法将其复制到闪存或使用 FAT 格式化的外部硬盘上。我如何将其拆分为一些较小的文件

pti*_*tim 84

我需要比 Hamed 提供的答案更多的细节,根据hints.macworld.com上的评论,以下是对我有用的方法

split -b 1024m "YourFile.iso" "YourFile.iso."
Run Code Online (Sandbox Code Playgroud)

这会根据需要生成尽可能多的 1024mb 文件(最后还有一个较小的文件),如下所示:

  • 你的文件.iso.aa
  • 你的文件.iso.ab
  • ...
  • YourFile.iso.af (最后一个文件将小于 1024mb)

我喜欢使用原始文件名并添加 '.' 最后,以便一目了然地清楚文件是什么。

我选择了 1024mb 的文件,因为 VOB 似乎就是那个大小,而 Toast 也将文件拆分为 1024mb - 它们一定有充分的理由!

再次加入这些:

cat YourFile.iso.* > YourFile.iso
Run Code Online (Sandbox Code Playgroud)

请注意,此处的第一个参数以 .* 结尾,它将一次获取所有 aa、ab、ac 等。

此外,如果您生成的文件已经存在,它会被悄悄地覆盖(没有像 Finder 中那样重命名的副本)。mac 版本的 split 似乎与 linux 版本略有不同(一方面,不支持数字后缀 (-d))。


更新...

在安迪·伊瓦内斯 (Andy Ibanez) 评论说他的beforeafter不匹配的评论之后重新审视这一点……这是我的测试:

split -b 1024m "YourFile.iso" "YourFile.iso."
Run Code Online (Sandbox Code Playgroud)

我在 OSX 上,但是使用自制软件中的 bash,我之前被操作系统之间的差异所困扰……也许其他人可以提出 md5 在上述情况下不匹配的原因……


Ham*_*abi 53

您可以在 shell 上使用此命令:

split -b YOUR_EXPECTED_SIZES YOUR_FILE_NAME PATTERN_NAME_AS_OUTPUT
Run Code Online (Sandbox Code Playgroud)

并恢复它

cat SPITED_FILES_AS_LIST > NEW_FILE
Run Code Online (Sandbox Code Playgroud)

我希望它对你有用!

  • 如果在运行`split -b 500M input_file.tar.gz output_files.tar.gz.`后得到`illegal byte count`,则需要提供整数字节数:`split -b 500000000 input_file.tar.gz output_files.tar .gz.` (4认同)
  • @LXXIII 的价值,我发现它区分大小写!所以虽然 `-b 20K` 不起作用,`-b 20k` 就像一个魅力:) (3认同)