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

Mat*_*day 4 zfs solaris tar gnu limit

我需要在 tar 存档中存储大量文件(> 100,000)并遇到错误:/bin/sh: /bin/tar: cannot execute [Arg list too long]

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

Joh*_*éen 7

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

tar -c -f output.tar -T filelist.txt
Run Code Online (Sandbox Code Playgroud)

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

find mydir | tar -c -f output.tar -T -
Run Code Online (Sandbox Code Playgroud)