递归删除文件夹中的所有二进制文件

时间:2016-03-25 13:37:43

标签: linux bash command-line delete-file

我希望使用命令行或bash脚本以递归方式删除linux下文件夹中的所有二进制文件。我找到了

filtered = Table.filter({ (text) -> Bool in
            let tmp: NSString = text as! NSString
            let range = tmp.rangeOfString(searchText, options: NSStringCompareOptions.CaseInsensitiveSearch)
            return range.location != NSNotFound
        })

列出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

问题是如何正确删除这些文件

2 个答案:

答案 0 :(得分:1)

此命令将在目录中递归返回所有二进制可执行文件,首先运行此命令以确保正确输出。

find . -type f -executable -exec sh -c "file -i '{}' | grep -q 'x-executable; charset=binary'" \; -print

如果可行,您可以将输出传递给xargs以删除这些文件。

find . -type f -executable -exec sh -c "file -i '{}' | grep -q 'x-executable; charset=binary'" \; -print | xargs rm -f

希望这有所帮助,祝你有个美好的一天! :)

答案 1 :(得分:1)

我编写了一个名为 blobs 的工具,用于列出可运行的二进制文件。

它的自述文件提到了如何通过管道传输到任何其他命令。