[英]Recursively delete all binary files in folder
我想使用命令行或 bash 腳本遞歸刪除 linux 下文件夾中的所有二進制文件。 我發現
grep -r -m 1 "^" path/to/folder | grep "^Binary file"
在如何列出目錄樹中的所有二進制文件擴展名中列出path/to/folder
中的所有二進制文件? . 我現在想刪除所有這些文件。 我可以
grep -r -m 1 "^" path/to/folder | grep "^Binary file" | xargs rm
但這很可疑,因為它還嘗試刪除文件“二進制”、“文件”和“匹配”,如
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
因此,問題是如何正確刪除這些文件?
此命令將遞歸返回目錄中的所有二進制可執行文件,首先運行此命令以確保正確輸出。
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
希望這有幫助,祝你有美好的一天! :)
我編寫了一個名為blob的工具,它列出了可運行的二進制文件。
它的自述文件提到了如何通過管道傳輸到任何其他命令。
如果您要刪除文件夾中的大量二進制文件,這應該可以完成工作。
find . -type f -executable | xargs rm
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.