bash: /usr/bin/find: 参数列表太长

bash: /usr/bin/find: 参数列表太长

我的文件夹中有太多文件。我只是希望我的索引节点尽快释放,所以我尝试过

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

相关内容