如何将目录中的所有文件拆分为4gb文件到不同的目录?

我有一个包含几个大于4gb的大文件的目录。 我想将所有这些文件复制到另一个目录(恰好是安装了fat32 usb驱动器),但将文件拆分为4gb(因为目标驱动器仅限于那些大小的文件)。

我试过这个:

split -b 4096G /var/lib/backuppc/images/* /usbdrive/ 

但我得到了

 split: extra operand `/var/lib/backuppc/images/xxxxxxxxxmyfilesname.tib' 

难道我做错了什么? (也试过“4G”而不是4096G,没有区别)

我的建议是首先创建一个tar文件:

 tar -cf /tmp/bigfile.tar /var/lib/backuppc/images/* 

那么分裂:

 cd /usbdrive split -b 4G /tmp/bigfile.tar 

如果你想避免使用临时tar文件,你可以直接管道tar来拆分:

 tar -cf - /var/lib/backuppc/images/* | split -b 4G 

要在到达目的地时重建此内容,请重新创建并取消归档tar文件:

 cat /usbdrive/x* >bigfile.tar tar -xvf bigfile.tar 

再次,没有临时文件这样做:

 cat /usbdrive/x* | tar -xvf - 

split不能将多个输入文件作为参数。

您可以尝试使用find

 cd /var/lib/backuppc/images && find . -maxdepth 1 -type f -exec split -b 4G '{}' "/usbdrive/images/{}" \;