Warum akzeptiert pwd keine langen Optionen wie --physical?

Warum akzeptiert pwd keine langen Optionen wie --physical?

Wenn ich das Handbuch für pwdden Befehl anzeige, steht dort, dass lange Optionen wie --physicalunterstützt werden

$ 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

Es schlägt jedoch fehl, wenn ich Folgendes eingebe

$ pwd --physical
-bash: pwd: --: invalid option
pwd: usage: pwd [-LP]

Warum funktionieren Long-Optionen bei mir nicht?

Ich verwende RHEL 6.4. Es ist kein Alias ​​für pwd konfiguriert. Es sieht aus, als wäre es das Standard-pwd:

$ which pwd
/bin/pwd

Antwort1

bashverfügt über einen integrierten Befehl pwd, den Sie verwenden, wenn Sie ihn einfach pwdin Ihre Shell eingeben.

Um das zu erreichen, pwdwas in der Manpage beschrieben wird, müssen Sie die Verwendung des externen Befehls erzwingen. Sie können dies tun, indem Sie den vollständigen Pfad zur ausführbaren Datei angeben ( /bin/pwdin Ihrem Fall) oder indem Sie envvor die Zeile : setzen env pwd, die den envBefehl startet, mit dem Einstellungen zur Umgebung hinzugefügt werden können (was hier jedoch nicht getan wird) und dann envden angegebenen Befehl startet. Da envkein integriertes vorhanden ist pwd, wird das „echte“ /bin/pwdausgeführt.

Der Vorteil des integrierten Befehls pwdin Bash besteht darin, dass er bashdas aktuelle Verzeichnis verfolgt, sodass das Abrufen des Werts kostenlos ist. Der externe Befehl hingegen muss das gesamte Dateisystem durchsuchen, um den Pfad zu ermitteln, was wesentlich mehr E/A erfordert.

Antwort2

Diese Manpage dokumentiert /bin/pwd, aber wenn Sie es ausführen, pwdverwenden Sie die integrierte Shell. Siehe die Ausgabe von

type pwd

Die integrierten Funktionen Ihrer Shell pwdunterstützen keine langen Optionen (siehe die Dokumentation Ihrer Shell; da Sie Bash verwenden, help pwdfinden Sie dort eine Zusammenfassung).

verwandte Informationen