一部のシェル スクリプトの改善として、 whichコマンドへのフル パスを参照したいと思います。一部の unix gnu/linux ディストリビューションの標準的な場所が /usr/bin/which 以外にあることを知っている人はいますか?
質問する
136 次
3 に答える
2
これは、Linux システムの標準的な部分ではありません。Linux Standard Base 4.1 には存在せず、Single Unix Specification Version 4/POSIX 2008 にも存在しません。
- http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/toccommand.html
- http://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html
したがって、質問に対する唯一の正式な回答は、ファイル システムに信頼できる場所がないことです。
実用的な解決策としては、デフォルトの検索パス ディレクトリで常に使用できる必要があります。したがって、最も実用的な答えは、ハードコードされたパスなしでスクリプトから which を実行することです。[編集: ハードコーディングされた一連のパスを使用するソリューションは、デフォルトの検索パスを使用するよりも悪い]。
于 2013-03-29T16:41:54.013 に答える
1
あなたが試すことができます :
whereis which
whereis
コマンドのバイナリ、ソースを検索します
于 2013-03-29T16:19:51.427 に答える
1
これを試して:
which -a which
フラグは、指定された引数の-a
すべての場所を一覧表示します (現在の環境で実行されるファイルまたはリンクのパス名を返すのとは対照的に、引数が厳密に POSIX 準拠のシェルでコマンドとして指定されている場合)。
于 2013-03-29T16:16:47.143 に答える