Linux下如何移动大文件?

Linux下如何移动大文件?

我有一个超过 4GB 的 ISO 文件。当我尝试将文件从我的计算机复制或移动到 USB 密钥时,我记得收到一些错误,提示文件太大,操作系统无法移动。

然后我运行这个命令让 tar 将其分解为 disk1.tar 和 disk2.tar:

tar -c -M --tape-length=2002400 --file=disk1.tar bigfile.iso

完成后,我将文件复制到 USB 上。现在,当我尝试将文件放回原位时,我运行了以下命令:

tar -x -M --file=disk1.tar

但我得到了错误

tar: Archive value 4209604608 is out of off_t range 0..2147483647
tar: Exiting with failure status due to previous errors

所以我的问题是如何将大型文件从我的计算机移动到 USB 密钥?我甚至尝试将文件从一台服务器通过 SFTP 传输到另一台服务器,但它也抱怨文件太大。

答案1

如果您有网络连接,那么只需执行 ssh 管道。

ssh user@host "cat > file.remote" < file.local

如果您需要分割文件用于媒体,那么请使用split将其分解然后cat再融合在一起。

split -b 1G file.local filexfer
cat filexfer* > file.remote

请注意,所有这些都假设远程文件系统实际上能够存储那么大的文件。

答案2

不确定您是否可以重新格式化 USB 密钥,但如果可以,您应该能够将其放入其中而无需拆分文件。错误很可能是由于 USB 密钥使用 FAT32 格式化,其最大文件大小限制为 2 GB。如果您使用 ext3 或 ext4 格式化它,您将能够将整个文件写入一个整体。

相关内容