Unix tar返回参数列表太长[重复]
Posted
技术标签:
【中文标题】Unix tar返回参数列表太长[重复]【英文标题】:Unix tar returns The parameter list is too long [duplicate] 【发布时间】:2020-02-13 22:33:28 【问题描述】:当我尝试使用 fowing 命令压缩文件夹中的所有文件时:
tar cvf mailpdfs.tar *.pdf
shell 抱怨:
ksh: /usr/bin/tar: 0403-027 参数列表过长。
如何处理?我的文件夹有25000个pdf文件,每个文件大小2MB,如何快速复制?
【问题讨论】:
Argument list too long error for rm, cp, mv commands、Unix cp argument list too long等可能重复 【参考方案1】:您可以将所有 pdf 文件复制/移动到新文件夹,然后 tar 新文件夹。
mv *.pdf newfolder
tar cvf mailpdfs.tar newfolder
Referenced from unix.com
【讨论】:
【参考方案2】:tar 选项-T
就是你需要的
-T, --files-from=FILE
get names to extract or create from FILE
你打破了 ksh 中文件 globbing 的限制,所以你可以生成这样的文件列表
ls | grep '\.pdf$' >files.txt
然后将该文件与 tar 一起使用
tar cvf mailpdfs.tar -T files.txt
最后,您可以通过让 tar 从标准输入读取文件名(通过为 -T
选项指定特殊文件名 -
)来取消创建临时文件来保存文件名。
所以我们最终得到了这个
ls | grep '\.pdf$' | tar cvf mailpdfs.tar -T -
【讨论】:
Why not parsels
?
这样,文件名中的特殊字符不再是问题:find . -maxdepth 1 -name "*.pdf" -print0 | tar --null -cf mailpdfs.tar -T -
以上是关于Unix tar返回参数列表太长[重复]的主要内容,如果未能解决你的问题,请参考以下文章