web-dev-qa-db-ja.com

コマンドが実行可能かどうかを確認する

Linuxでコマンドが実行可能かどうかを確認するにはどうすればよいですか。

例:

xeyes
1
Žan Konečnik

条件式の段落のman bashから:

-xファイル

ファイルが存在し、実行可能であれば真。

だから、あなたは使うことができます:

[ -x /usr/bin/xeyes ] && echo "File is executable" || echo "File is not an executable or does not exist"
3
oliv

コマンドバイナリが保存されている場所がわかっている場合は、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
Arushix

コマンドへのパスがわからない場合は、whichを使用して、それがどこにあるかを確認できます(もちろん、$ PATHにある場合)。コマンドファイルへのパスがわかっている場合は、if -x /path/to/commandステートメントを使用します。

0
mariaczi