gpt4 book ai didi

linux - 使用 ls 和 grep 查找可执行文件

转载 作者:IT王子 更新时间:2023-10-29 00:13:24 27 4
gpt4 key购买 nike

我必须编写一个脚本来查找目录中的所有可执行文件。所以我尝试了几种方法来实现它,它们确实有效。但我想知道是否有更好的方法。

所以这是我的第一个方法:

ls -Fla | grep \*$

这工作正常,因为 -F 标志为我工作并向每个可执行文件添加一个星号,但假设我不喜欢星号。

所以这是第二种方法:

ls -la | grep -E ^-.{2}x 

这也很好,我想要破折号作为第一个字符,然后我对接下来的两个字符不感兴趣,第四个字符必须是 x。

但是需求有点模糊,因为我不知道我是否必须检查用户、组或其他可执行权限。所以这会起作用:

ls -la | grep -E ^-.{2}x\|^-.{5}x\|^-.{8}x

所以我正在测试第四个、第七个和第十个字符是否为 x。

现在我真正的问题是,是否有更好的解决方案使用 ls 和 grep 以及正则表达式来表示:

我只想 grep 那些文件,在 ls -la

生成的一行的前十个字符中至少有一个 x

最佳答案

您需要使用 ls 吗?您可以使用 find 来做同样的事情:

find . -maxdepth 1 -perm -111 -type f

将返回当前目录中的所有可执行文件。删除 -maxdepth 标志以遍历所有子目录。

您可以尝试这种可怕的方法,但它可能会匹配包含看起来像权限的字符串的文件。

ls -lsa | grep -E "[d\-](([rw\-]{2})x){1,3}"

关于linux - 使用 ls 和 grep 查找可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7812324/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com