コマンドマニュアルを表示すると、長いオプションがサポートされてpwd
いることがわかります--physical
$ man pwd
PWD(1) User Commands PWD(1)
NAME
pwd - print name of current/working directory
SYNOPSIS
pwd [OPTION]...
DESCRIPTION
Print the full filename of the current working directory.
-L, --logical
use PWD from environment, even if it contains symlinks
-P, --physical
avoid all symlinks
ただし、次のように入力すると失敗します。
$ pwd --physical
-bash: pwd: --: invalid option
pwd: usage: pwd [-LP]
長いオプションが私に適していないのはなぜですか?
RHEL 6.4を使用しています。 pwdのエイリアスは設定されていません。これは標準パスワードのようです:
$ which pwd
/bin/pwd
答え1
bash
シェルにpwd
入力するだけで使用できる組み込みコマンドがあります。pwd
マンページに記載されている内容を取得するには、pwd
外部コマンドを強制的に使用する必要があります。実行可能ファイルへのフルパスを指定する/bin/pwd
か(あなたの場合)、env
次を追加することでこれを行うことができます。env pwd
この行は、環境に設定を追加するために使用できるコマンドを起動し(ここでは実行されません)、開始されますenv
。env
指定されたコマンド。env
組み込み機能がないため、pwd
「real」が実装されます。/bin/pwd
bash組み込みコマンドの利点はpwd
現在のbash
ディレクトリを追跡するため、値を取得するコストはゼロですが、外部コマンドはパスを決定するためにファイルシステムから取得する必要があるため、IO集約的です。
答え2
マニュアルページにはこの内容が記録されていますが、/bin/pwd
実行するとpwd
組み込みシェルを使用します。
type pwd
シェルの組み込み機能はpwd
長いオプションをサポートしていませんhelp pwd
。