如何仅删除/删除可执行文件(即没有扩展名的文件)

新手上路,请多包涵

我有一个目录 src/ ,其中包含许多 .cc 文件及其二进制文件。例如:

 src/
  |_ foo.cc
  |_ bar.cc
  |_ qux.cc
  |_ thehead.hh
  |_ foo  (executable/binary)
  |_ bar  (executable/binary)
  |_ qux  (executable/binary)
  |_ makefile

实际上有很多 .cc 和可执行文件。

我需要以全局方式删除这些二进制文件,而不必列出所有文件。有没有一种快速而紧凑的方法来做到这一点?

我试过了:

 $ rm *

但它会删除所有文件,包括 .cc 和 .hh 文件。

我知道这个命令:

 $ rm foo bar qux ....

但是我们仍然必须一一列出所有文件。

原文由 neversaint 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 735
2 个回答

你可以跑

find . -perm +100 -type f -delete

原文由 kcwu 发布,翻译遵循 CC BY-SA 2.5 许可协议

干得好:

 ls | grep -v "\." | xargs rm

grep -v 说“只允许不包含点的文件名”,而 xargs rm 说“然后将文件名列表传递给 rm ”3。

原文由 RichieHindle 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题