我需要executable
从目录中删除所有文件。我的目录包含一些配置文件和可执行文件文件,我需要删除所有executable
不需要的文件。
为此我写了一个这样的命令:
ls -lp | grep -v / | awk 'match($0,"-**x*x*x",a);{print a[1]}'| \
awk '{print $9}' | xargs rm -f
还有其他方法可以做到这一点吗?
我尝试过与find
.它将列出所有其他子目录文件。我使用grep -v /
, 来避免当前文件夹中的子目录。
答案1
您应该用于find
此任务:
find . -type f -executable
将递归地显示当前用户可执行的文件。
将搜索限制为仅当前目录:
find . -maxdepth 1 -type f -executable
去除:
find . -maxdepth 1 -type f -executable -exec rm {} +
或者使用 GNU find
:
find . -maxdepth 1 -type f -executable -delete
作为旁注,如果您想查找任何用户可执行的文件,而不仅仅是当前用户(设置为常规执行权限位):
find . -type f -perm /111