当使用tar压缩多个文件时,出现“bash:/bin/tar:参数列表太长”的错误提示。

33
我正在尝试使用命令压缩文件存档。
tar -czvf compress_file.tar.gz $(cat file_list.txt)

而且我遇到了一个错误

-bash: /bin/tar: Argument list too long

文件编号太长了,我该如何解决?

3个回答

73
使用“-T”选项将包含要打包的文件名的文件传递给tar。
tar -czv -T file_list.txt -f tarball.tar.gz

11
如果想要创建一个文件列表,并只删除被“tar”压缩的文件,请参考以下示例:https://major.io/2007/07/05/bintar-argument-list-too-long/ - timss
这是我创建文件列表的方法:find ./ -iname "*part_of_filename*" > file_list.txt - Ari

12

如何制作文件列表进行打包:

首先创建需要打包的文件列表。

ls > temp

那么

tar cvzf dicionario_ultra.tgz -X FILE -T temp

最后一点,
rm temp

“-X FILE” 部分是什么作用? - Kudit

1

您可以使用find来避免这个问题,它会列出当前文件夹下的文件,而-print选项将会在每个文件名后面加上一个换行符,从而触发tar命令
find . -type f -print | tar -cvf somefile.tar -T -


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接