Проверить, является ли команда исполняемой [дубликат]

Tuve el mismo problema en algunas de mis máquinas :Era como si Linux no se diera cuenta de que había agregado intercambio.

La solución :Actualice el kernel de 3.x a 4.x.

2
23.05.2018, 11:07
3 ответа

De man bashen el párrafo de expresiones condicionales:

-x file

True if file exists and is executable.

Entonces, puedes usar:

[ -x /usr/bin/xeyes ] && echo "File is executable" || echo "File is not an executable or does not exist"
9
28.04.2021, 23:46

Если вы не знаете путь к команде, вы можете использовать which, чтобы проверить, где она находится (, конечно, если она у вас есть в $PATH ). Если вы знаете путь к командному файлу, используйте оператор if -x /path/to/command.

1
28.04.2021, 23:46

Если вы знаете, где хранится двоичный файл команды, просто выполните 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

1
28.04.2021, 23:46

Теги

Похожие вопросы