![bash: /usr/bin/find: 参数列表太长](https://linux22.com/image/74148/bash%3A%20%2Fusr%2Fbin%2Ffind%3A%20%E5%8F%82%E6%95%B0%E5%88%97%E8%A1%A8%E5%A4%AA%E9%95%BF.png)
我的文件夹中有太多文件。我只是希望我的索引节点尽快释放,所以我尝试过
find ./EcoBackup/* -name '*.*' > FilesBackupName.txt
bash: /usr/bin/find: Argument list too long
tar -cv -T FilesBackupName.txt -f tarball.tar
当参数列表太长时,如何才能不失败地加速我的 tar ?
它会成功吗?
find /foot/bar/ -name '*.*' -exec mv -t tarball.tar {} +
find /foot/bar/ -name '*.*' -print0 | xargs -0 tar -t tarball.tar
我可以删除相同类型的文件吗?
答案1
发生这种情况的原因是 bash 实际上将星号扩展到每个匹配的文件,从而在命令行中产生太多参数。所以删除后应该没问题(例如这里)
find ./EcoBackup/ -name '*.*' > FilesBackupName.txt
并且您建议的解决方案也应该有效。
您可以使用该选项通过命令--remove-files
一次性删除文件tar
tar --remove-files -cv -T FilesBackupName.txt -f tarball.tar