如何检查命令在 Linux 中是否可执行。
例子:
xeyes
答案1
从man bash
条件表达式段落中:
-x 文件
如果文件存在并且可执行,则为 True。
所以,你可以使用:
[ -x /usr/bin/xeyes ] && echo "File is executable" || echo "File is not an executable or does not exist"
答案2
如果您知道命令二进制文件的保存位置,只需执行ls -l
.如果您不知道位置,请先使用which
命令查找位置
$ which xeyes
/usr/bin/xeyes
如果该命令设置了执行权限 ( x
),则该命令是可执行的。
$ ls -l /usr/bin/
-rw-rw-r-- 1 arushirai arushirai 0 May 23 11:58 123
-rwxrwxr-x 1 arushirai arushirai 0 May 23 11:58 xeyes
实际上-x <filename>
检查文件是否具有执行权限集
解释:
ls -l 的第一列显示文件的权限。
-rwxrwxr-x
- r 是读权限
- w 是写权限
- x是执行权限
-rwxrwxr-x
- 第 1 位:告诉
type of file
(-
用于常规文件) - 接下来的 3 位:
owner
权限(rwx
:读、写和执行) - 接下来的 3 位:
group
权限(rwx
:读、写和执行) - 接下来的3位:
other
权限(r-x
:读取和执行权限)
有关文件权限的更多信息,请阅读:https://wiki.archlinux.org/index.php/File_permissions_and_attributes
答案3
如果您不知道该命令的路径,您可以使用它which
来检查它的位置(当然,如果您在 $PATH 中有它)。如果您知道命令文件的路径,请使用if -x /path/to/command
语句。