Linux Unix tar返回的参数列表太长
当我尝试使用fowing命令对文件夹中的所有文件进行tar时: tar cvf mailpdfs.tar*.pdf 壳牌公司抱怨说: ksh:/usr/bin/tar:0403-027参数列表太长。Linux Unix tar返回的参数列表太长,linux,shell,unix,tar,Linux,Shell,Unix,Tar,当我尝试使用fowing命令对文件夹中的所有文件进行tar时: tar cvf mailpdfs.tar*.pdf 壳牌公司抱怨说: ksh:/usr/bin/tar:0403-027参数列表太长。 如何处理?我的文件夹包含25000个pdf文件,每个文件大小为2MB,如何快速复制它们?您可以将所有pdf文件复制/移动到新文件夹,然后对新文件夹进行tar mv *.pdf newfolder tar cvf mailpdfs.tar newfolder tar选项-T就是您所需要的 -
如何处理?我的文件夹包含25000个pdf文件,每个文件大小为2MB,如何快速复制它们?您可以将所有pdf文件复制/移动到新文件夹,然后对新文件夹进行tar
mv *.pdf newfolder
tar cvf mailpdfs.tar newfolder
tar选项
-T
就是您所需要的
-T, --files-from=FILE
get names to extract or create from FILE
您正在突破ksh中文件全局绑定的限制,因此可以生成如下文件列表
ls | grep '\.pdf$' >files.txt
然后将该文件与tar一起使用
tar cvf mailpdfs.tar -T files.txt
最后,您可以通过让tar从stdin读取文件名(通过为-T
选项提供特殊文件名-
)来创建一个临时文件来保存文件名
所以我们就这样结束了
ls | grep '\.pdf$' | tar cvf mailpdfs.tar -T -
可能的重复等。这样,文件名中的特殊字符就不再是问题:
find-maxdepth 1-名称“*.pdf”-print0|tar--null-cf mailpdfs.tar-T-