有人可以给我一个在下面的操作中使用xargs的例子吗?
tar c $dir/temp/*.parse\ | lzma -9 > $dir/backup/$(date '+%Y-%m-%d')-archive.tar.lzma
我从bash“/ bin / tar:参数列表太长”中得到错误
特别是我试图对大约4,500个文件进行LZMA压缩;所以这并不奇怪.我只是不知道如何修改上面使用xargs并摆脱错误!谢谢.
解决方法
扩展CristopheDs回答并假设您正在使用bash:
tar c --files-from <(find $dir/temp -maxdepth 1 -name "*.parse") | lzma -9 > $dir/backup/$(date '+%Y-%m-%d')-archive.tar.lzma
xargs在这里没有帮助的原因是它将进行多次调用,直到所有参数都被使用.这对您没有帮助,因为这会创建几个您不想要的tar档案.