在 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) 添加到它。

相關內容