Какая команда в Linux/UNIX распечатывает мой текущий каталог с помощью оболочки sh
(не bash
)?
$ *showmewhereiam*
/sys/kernel/debug
$
Попробуйте pwd
.
$ pwd
/home/<username>
Хотя общим ответом является pwd
, обратите внимание, что это может дать разные результаты в зависимости от того, как вы достигли данного каталога, и от того, включены ли в маршрут символические ссылки.
Например, если у вас есть каталог с именем real
и символическая ссылка на этот каталог с именем virtual
, и вы cd
на virtual
каталог, то pwd
покажет имя этого virtual
каталога, даже если фактический каталог, в котором вы находитесь, является real
.
Чтобы показать реальный базовый каталог, используйте либо pwd -P
либо readlink -f
(для произвольного пути):
$ mkdir real $ ln -s real virtual $ cd virtual $ pwd /home/username/tmp/virtual $ pwd -P /home/username/tmp/real $ readlink -f . /home/username/tmp/real
Обратите внимание, что оболочки часто заменяют команду pwd
своей собственной внутренней версией, поэтому в моей системе (RHEL6), хотя страница справочника pwd(1)
предполагает, что --physical
будет работать так же, как и -P
, потому что я использую bash
это не так:
$ pwd --physical bash: pwd: --: invalid option pwd: usage: pwd [-LP] $ /bin/pwd --physical /home/username/tmp/real $ /usr/bin/env pwd --physical /home/username/tmp/real
$ pwd
/your/current/directory
$
pwd
происходит из рабочего каталога печати.
название
pwd - вывести имя текущего / рабочего каталога
конспект
pwd [ОПЦИЯ] ...
Описание
Напечатайте полное имя файла текущего рабочего каталога.
-L, - логический
использовать PWD из среды, даже если он содержит символические ссылки
-P, --physical
избегать всех символических ссылок
--Помогите
показать эту помощь и выйти
--версия
вывести информацию о версии и выйти
ПРИМЕЧАНИЕ: ваша оболочка может иметь свою собственную версию pwd, которая обычно заменяет версию, описанную здесь. Пожалуйста, обратитесь к документации вашей оболочки для деталей о поддерживаемых опциях.
(...)
Как говорили другие, pwd
обычно выполняет свою работу достаточно хорошо. Тем не менее, я хотел бы добавить идею, которая помогла мне.
На всех общеупотребительных оболочках сегодня вы можете настроить внешний вид командной строки. Мне нравится настраивать мой так, чтобы он отображал как имя компьютера, на котором я работаю, так и мой рабочий каталог. Таким образом, я всегда знаю, где я. (Часть имени компьютера помогает мне понять, использовалось ли используемое мной окно терминала для SSH на удаленном сервере.) Например, когда я открываю новое окно терминала на моем ноутбуке, которое я называю Plastico, я вижу это:
Plastico ~> cd Desktop/
Plastico ~/Desktop> cd ~/Sites/raygunrobot.com
Plastico ~/Sites/raygunrobot.com> cd /usr
Plastico /usr>
Вы можете видеть, что это сокращает мой домашний каталог как ~
. Я считаю, что делать это для моих терминальных подсказок невероятно удобно - я всегда с первого взгляда точно знаю, где я нахожусь, даже больше, чем когда бы я смотрел в окно Finder.
На tcsh я делаю это, добавляя set prompt = 'Plastico %~%# '
в мой файл .tcshrc в моем домашнем каталоге. Я также сделал это для ksh, добавив export PS1="Plastico $PWD $ "
в мой файл .profile. Но, будучи пользователем Linux, вы, вероятно, используете Bash, с которым у меня не так много опыта (я странный, как этот). Но похоже, что я мог бы сделать это, добавив PS1="Plastico \w $ "
в мой файл .bashrc.
Редактировать: только что заметил, что ОП заявляет, что вы заинтересованы sh, а не bash. Ну что ж; надеюсь, что люди найдут это полезным, независимо от того.