スポンサーリンク

【Ubuntu】コマンドの場所(フルパス)を調べる方法(whichコマンド)

Ubuntuでコマンドの場所(フルパス)を調べる方法です。

whichでコマンドのフルパスを表示

「which」はコマンドのフルパスを表示してくれるコマンドです。

which コマンド

試しに「ls」を指定して「which」コマンドを実行すると、「ls」コマンドのフルパスが表示されます。

$ which ls
/usr/bin/ls

-a オプション

「-a」オプションを使用すると、同じコマンドが複数パスに存在する場合、全てのパスを表示してくれます。

$ which -a ls
/usr/bin/ls
/bin/ls

パスの優先順位

パスには優先順位があり、先に設定されているものが優先的に適用されます。

$ env | grep PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

「/usr/bin/ls」と「/bin/ls」の場合、「/usr/bin」の方が先に設定されているので「ls」と実行すると「/usr/bin/ls」の方が選択されます。

「-a」オプションをつけずに「which ls」と実行すると「/usr/bin/ls」が表示されるのも、それが理由となります。

ちなみに、「/bin」は「/usr/bin」へのシンボリックリンクとなっているので、結局は「/usr/bin/ls」と「/bin/ls」は同じものだったりします。

$ ls -l /bin
lrwxrwxrwx 1 root root 7 Apr 22  2024 /bin -> usr/bin

「sha256sum」でハッシュ値を比較すると、両方とも同じであることが確認できます。

$ sha256sum /usr/bin/ls
1bea8094b78a3910345d80af3d182390fda07ae5788352651eb7773505dc39af  /usr/bin/ls
$ sha256sum /bin/ls
1bea8094b78a3910345d80af3d182390fda07ae5788352651eb7773505dc39af  /bin/ls

コメント

タイトルとURLをコピーしました