【发布时间】:2016-03-25 13:37:42
【问题描述】:
我想使用命令行或 bash 脚本递归删除 linux 下文件夹中的所有二进制文件。我找到了
grep -r -m 1 "^" path/to/folder | grep "^Binary file"
在How to list all binary file extensions within a directory tree? 列出path/to/folder 中的所有二进制文件。我现在想删除所有这些文件。
我可以的
grep -r -m 1 "^" path/to/folder | grep "^Binary file" | xargs rm
但这有点可疑,因为它还试图删除 文件 'Binary'、'file' 和 'matches',如
rm: cannot remove ‘Binary’: No such file or directory
rm: cannot remove ‘file’: No such file or directory
rm: cannot remove ‘matches’: No such file or directory
因此问题是如何正确删除这些文件?
【问题讨论】:
-
这是对“二进制文件”的错误定义。无论如何-我建议您阅读Word Splitting。我很确定您会很快了解问题的根源。
-
确实有效,谢谢!我确实同意“二进制文件”的这种定义不是很好(参见下面 vesche 的答案及其讨论),但它准确地捕获了我想在给定用例中删除的文件。
标签: linux bash command-line delete-file