在 Solaris 11 下,tar 存档中可以存储的最大文件数是多少?

在 Solaris 11 下,tar 存档中可以存储的最大文件数是多少?

我需要在 tar 存档中存储大量文件(> 100,000),但遇到了错误:/bin/sh: /bin/tar: 无法执行 [参数列表太长]

UNIX Solaris tar 或 GNU tar 有限制吗?或者,这是 ZFS 问题吗?我正在运行带有 ZFS 的 Solaris 11.3。

答案1

这不是 tar 的限制。您超出了可以传递给程序的参数的最大大小。如果文件名列表在文件中可用,那么您可以使用 GNU tar 的-T选项:

tar -c -f output.tar -T filelist.txt

-Tar 还可以通过使用作为文件名从标准输入接收文件列表。例如,如果要创建包含 的所有文件和子目录的存档mydir,可以将 的输出传递find给 tar:

find mydir | tar -c -f output.tar -T -

答案2

正如其他人所说,问题(可能)是命令的长度,而不是存档的大小。你应该能够做到

焦油CF压缩包文件文件001 文件002 … 文件100
塔尔乌夫压缩包文件文件 101 文件 102 … 文件 200
塔尔乌夫压缩包文件文件201 文件202 … 文件300
或者,做
焦油CF压缩包文件文件001
创建存档,然后
焦油CF压缩包文件         文件002 … 文件100
塔尔乌夫压缩包文件文件 101 文件 102 … 文件 200
塔尔乌夫压缩包文件文件201 文件202 … 文件300
(可能与xargs) 添加到它。

相关内容