nev*_*int 7 c++ unix linux file
我有一个目录src /包含许多.cc文件及其二进制文件.例如:
src/
|_ foo.cc
|_ bar.cc
|_ qux.cc
|_ thehead.hh
|_ foo (executable/binary)
|_ bar (executable/binary)
|_ qux (executable/binary)
|_ makefile
Run Code Online (Sandbox Code Playgroud)
实际上有许多.cc和可执行文件.
我需要以全局方式删除这些二进制文件,而不必列出所有文件.有一种快速而紧凑的方式吗?
我试过了:
$ rm *
Run Code Online (Sandbox Code Playgroud)
但它删除所有文件包括.cc和.hh文件.
我知道这个命令:
$ rm foo bar qux ....
Run Code Online (Sandbox Code Playgroud)
但是我们仍然要逐一列出所有文件.
Ric*_*dle 17
干得好:
ls | grep -v "\." | xargs rm
Run Code Online (Sandbox Code Playgroud)
该grep -v
说"只允许不包含点文件名",并xargs rm
说"然后通过文件名的名单rm
".
kcw*_*cwu 17
你可以跑
find . -perm +100 -type f -delete
Run Code Online (Sandbox Code Playgroud)
Ste*_*202 11
使用find
.你想要的是这个:
find . -type f -executable -exec rm '{}' \;
Run Code Online (Sandbox Code Playgroud)
删除没有扩展名的所有内容也可以完成:
find . -type f -not -iname "*.*" -exec rm '{}' \;
Run Code Online (Sandbox Code Playgroud)
前一个选项不会删除Makefile
,因此是首选.我认为kcwu的答案显示了使用该-delete
选项改进上述内容的好方法:
find . -type f -executable -delete
find . -type f -not -iname "*.*" -delete
Run Code Online (Sandbox Code Playgroud)
编辑:我find
在Ubuntu 8.10下使用GNU findutils ,版本4.4.0.我不知道-executable
开关是如此罕见.
归档时间: |
|
查看次数: |
15499 次 |
最近记录: |