Linux下如何查找可执行文件

时间:2023-03-08 15:50:55
Linux下如何查找可执行文件

Linux下的可执行文件

Linux下如何查找可执行文件,作为一个Linux小菜刚刚有了这个问题,

在windows中,可以通过后缀名判断是否是可执行文件,比如.exe,.bat等是可执行文件,但是在Linux下呢?

Linux下不能简单根据文件后缀判断是否可执行。

linux下判断一个文件是否可执行,关键看是否有可执行权限,比如:

在终端中输入:ls -l ,会列出类似于下的列表:

-rwxrwxr-x 1 bingyue bingyue 48141 Jul 17 02:50 redis-trib.rb*
-rw-rw-r-- 1 bingyue bingyue 2163 Aug 5 23:34 release.c
drwxrwxr-x 2 bingyue bingyue 4096 Jul 22 20:03 Documents

以下面输出为例,下划线区域说明了文件的权限,包括可读、可写、可执行等等。

【-】【rwx】【rwx】【r-x】 1 bingyue bingyue 2324109 Aug 5 23:35 redis-cli*

10个字符确定不同用户能对文件干什么:
第一个字符代表文件(-)、目录(d),链接(l)
其余字符每3个一组(rwx),读(r)、写(w)、执行(x),分别说明文件所有者(User)、文件所有者所在的用户组其他用户(Group)、其他组用户(Others)对该文件拥有的权限。

第一组rwx:文件所有者的权限 是读、写和执行
第二组rwx:与文件所有者同一组的用户的权限是读、写和执行
第三组r-x:不与文件所有者同组的其他用户的权限是读和执行,不能写

另外有部分文件也可以通过后缀名判断,比如redhat中,凡是.rpm格式的都能在redhat中执行,debian中.deb格式的在debianlinux中能直接执行。

如何查找可执行文件

使用
ls -F|grep "*"

Ubuntu下也可以使用

ll | grep "*"
ll不是linux下一个基本的命令,可以认为是ls -l的一个别名。

ls -F可以把文件按照类型归类,并且在末尾加上/ *等符号标识。
-F, --classify append indicator (one of */=>@|) to entries,
-F和--classify选项可以对列表查看文件添加后缀。普通文件不添加后缀,对可执行文件添加*号,为目录添加/号,为符号链接添加@号。
| 管道输出,grep "*" 从中挑出以"*"结尾的行并输出。

类似的,
使用ls -F|grep "/" 可以查找目录
使用ls -F|grep "@" 可以查找软连接

另外,使用ls -color 可以标识出可执行文件:

Linux下如何查找可执行文件

实例输出:

Linux下如何查找可执行文件