检查命令是否可执行

检查命令是否可执行

如何检查命令在 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语句。

相关内容