Почему pwd не принимает длинные параметры, такие как --physical?

Почему pwd не принимает длинные параметры, такие как --physical?

Когда я отображаю руководство по 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 не настроен. Похоже, это стандартный pwd:

$ which pwd
/bin/pwd

решение1

bashимеет встроенную команду pwd, которую вы используете, когда просто вводите данные pwdв оболочке.

Чтобы получить то pwd, что описано в man-странице, вам нужно принудительно использовать внешнюю команду. Вы можете сделать это, указав полный путь к исполняемому файлу ( /bin/pwdв вашем случае) или добавив envперед строкой: env pwd, которая запускает envкоманду, которую можно использовать для добавления настроек в среду (но здесь этого не делается), а затем envзапускает указанную команду. Поскольку envне имеет встроенной , выполняется pwd«реальная» команда./bin/pwd

Преимущество встроенной pwdв bash команды заключается в том, что она bashотслеживает текущий каталог, поэтому получение значения не требует никаких затрат, в то время как внешней команде необходимо выполнять поиск по файловой системе, чтобы определить путь, что требует гораздо большего объема операций ввода-вывода.

решение2

Это man-страница /bin/pwd, но при запуске pwdвы используете встроенную оболочку; см. вывод

type pwd

Встроенная в вашу оболочку оболочка pwdне поддерживает длинные параметры (см. документацию по вашей оболочке; поскольку вы используете Bash, help pwdпредоставлю сводку).

Связанный контент