GNU/Linux >> Linux の 問題 >  >> Linux

特定のコマンドに対応する実行可能ファイルを見つけるための unix コマンドは何ですか?

使用するコマンドはシェルによって異なります。

ビルトインだけがエイリアス、シェル関数、その他のビルトインなどについて完全に知ることができるため、与えられたコマンド名に対してシェルが何をするかを正しく伝えることができるのはシェルビルトインだけです。注意:そもそもすべてのコマンドが実行可能ファイルに対応しているわけではありません。

  • Bourne Again シェルの場合、bash 組み込みは type です コマンド:

    $ type '['
    [ is a shell builtin
    
  • 魚の殻の場合、fish type builtin は bash と同様に機能します。実行可能ファイルへのパスだけを取得するには、 command -v を使用します :

    $ type cat
    cat is /bin/cat
    $ command -v cat
    /bin/cat
    
  • Korn シェルの場合、ksh ビルトインは whence です コマンド — type 付き 最初は whence -v の通常のエイリアスとして設定 そして command -v で組み込み whence に相当するオプション :

    $ whence -v ls
    ls is a tracked alias for /bin/ls
    
  • Z シェルの場合、zsh 組み込みは whence です コマンド、command -v で組み込み whence に相当するオプション 組み込みの typewhich 、および where whence に相当 オプション -v で 、 -c 、および -ca

    $ whence ls
    /bin/ls
    
  • T C シェルの場合、tcsh 組み込みは which です コマンド — その名前の外部コマンドと混同しないでください:

    > which ls
    ls: aliased to ls-F
    > which \ls
    /bin/ls
    

さらに読む

  • https://unix.stackexchange.com/questions/85249/

which を使用できます このため:

[email protected]:~$ which ls
/bin/ls

PATH を検索することで機能します 引数の名前に一致する実行可能ファイルの場合。シェル エイリアスでは機能しないことに注意してください:

[email protected]:~$ alias listdir=/bin/ls
[email protected]:~$ listdir /
bin    dev   initrd.img      lib32   media  proc  selinux  tmp  vmlinuz
...
[email protected]:~$ which listdir
[email protected]:~$

type ただし、機能します:

[email protected]:~$ type listdir
listdir is aliased to `/bin/ls'

which しない (必然的に) 実行可能ファイルを返します。最初に一致したファイル name を返します $PATH (または which -a を使用する場合は複数の同様の名前のファイル) で検索します )... 実際の 実行可能ファイルは、複数のリンクから離れている場合があります。

  • which locate
    /usr/bin/locate
    `
  • file $(which locate)
    /usr/bin/locate: symbolic link to /etc/alternatives/locate'

実際のを見つけるコマンド 実行可能ファイルは readlink -e です 、
(which と併用) )

  • readlink -e $(which locate)
    /usr/bin/mlocate

すべての中間 リンク を表示するには :

f="$(which locate)"             # find name in $PATH
printf "# %s\n" "$f"
while f="$(readlink "$f")" ;do  # follow links to executable
    printf "# %s\n" "$f"
done

# /usr/bin/locate
# /etc/alternatives/locate
# /usr/bin/mlocate

Linux
  1. 「tar」コマンドと「find」コマンドを組み合わせる方法

  2. 特定のセクターにあるファイルを見つける方法

  3. 特定のプロセスの .pid ファイルを見つける方法

  1. 特定のファイルを作成したプログラムまたはスクリプトを見つけることは可能ですか?

  2. `touch`コマンドの正当な使用法は何ですか?

  3. ファイルが開いているVim/tmuxを見つけることは可能ですか?

  1. Linuxのlocateコマンドとfindコマンドの違いは何ですか

  2. 特定のユーザーがどのグループを持っているかを調べる方法は?

  3. Windows の Linux の File コマンドに相当するものは何ですか?