2011-06-21 10:31:01 +0000 2011-06-21 10:31:01 +0000
37
37

Какая команда в оболочке Linux/UNIX sh возвращает мою текущую директорию?

Используя оболочку sh (не bash), какая команда в Linux/UNIX распечатывает мой текущий каталог?

$ *showmewhereiam*
/sys/kernel/debug
$

Ответы (4)

60
60
60
2011-06-21 10:32:09 +0000

Попробуй pwd.

$ pwd
/home/<username>
11
11
11
2011-06-21 12:48:02 +0000

Хотя общий ответ - pwd, обратите внимание, что это может дать разные результаты в зависимости от того, как вы достигли данной директории, и включал ли маршрут символические ссылки.

Например, если у вас есть каталог с именем real и символическая ссылка на этот каталог с именем virtual, и вы cd на каталог virtual, то pwd покажет имя каталога virtual, несмотря на то, что реальный каталог, в котором вы находитесь, равен real.

Чтобы показать реальную директорию pwd -P, используйте либо readlink -f, либо pwd (для произвольного пути):

$ 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(1) на свою собственную внутреннюю версию, так что на моей системе (RHEL6), хотя страница руководства --physical предполагает, что -P будет работать так же хорошо, как и bash, потому что я запускаю 0x6&, а это не так:

$ 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
```.
1
1
1
2017-02-20 09:13:21 +0000
$ pwd
/your/current/directory
$

pwd происходит из рабочего каталога печать.

Из man-страницы Linux:

Имя

pwd - имя текущего/рабочего каталога для печати

Synopsis

pwd [OPTION]….

Описание

Печать полного имени текущего рабочего каталога.

-L , –logical

использовать PWD из окружения, даже если он содержит сим-ссылки

-P , –физические

избегайте всех сим-ссылок

–help

отобразите эту справку и выйдите

–версия

вывод информации о версии и выйдите

ПРИМЕЧАНИЕ: ваша оболочка может иметь свою собственную версию pwd, которая обычно заменяет описанную здесь версию. Пожалуйста, обратитесь к документации Вашего shell'а для получения подробной информации о поддерживаемых им опциях.

(…).

1
1
1
2011-06-21 13:24:23 +0000

Как говорили другие, 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. Ну что ж, надеюсь, люди найдут это полезным.

Похожие вопросы

6
10
11
5
6