簡體   English   中英

遞歸刪除文件夾中的所有二進制文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM