Яка команда в оболонці Linux / UNIX sh повертає мій поточний каталог?


37

Використовуючи shоболонку (не bash), яка команда в Linux / UNIX друкує мій поточний каталог?

$ *showmewhereiam*
/sys/kernel/debug
$

4
Простий пошук у Google дав би відповідь, не правда?
Божевільний вчений

9
@ Безумний вчений Хоча це може бути правдою, воно перемагає мету сайту із запитанням / відповідями, щоб сказати людям перейти до Google. 90% нашого трафіку відбувається за допомогою веб-пошуку .
slhck


2
Ніщо не надто просто для SEO!
Кензо

Як не дивно, це питання є відповіддю на простий пошук Googleunix whereami
Jay Killeen

Відповіді:


60

Спробуйте pwd.

$ pwd
/home/<username>

6
коли я вперше торкнувся Linux, я подумав, що це команда про пароль і /devце щось про розвиток (вихідні коди чи щось подібне)
LiuYan 刘 研

2
О, дев означає пристрій ?! Завжди продуманий дотепер це означало лише dev ... Я думав, що dev / null - це те, де розробники Linux поставили спеціальний null-об'єкт. Дякую @LiuYan 刘 研
1owk3y

@LiuYan 刘 研 - Я повністю згоден, що це заплутано, якщо ви цього не знаєте. Мені довелося це шукати. Воно означає «Робочий довідник друку» для всіх, хто здивований тим, чому вони обрали б цю команду для цієї функції.
squarecandy

1
@squarecandy, Ось чому я буду уникати якомога більше акронімів, коли дорослішатимуть і старше, навіть абревіатура наразі не має неоднозначного значення - ніколи не знаєш, яке значення воно матиме у майбутньому. У ляльці Джеффа Данхема Уолтера є жарт : Що трапляється в DC залишається на YouTube! , де DC означає D- імітальну C- амеру, але також означає Вашингтон, D- стриктуру C olumbia в анекдоті.
Люйян 刘 研

11

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

Наприклад, якщо у вас є названий каталог realі символічне посилання на цей каталог, що називається virtual, і ви cdдо virtualкаталогу, то pwdбуде показано virtualім'я цього каталогу, навіть незважаючи на те, що у вас є фактичний каталог real.

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

$ mkdir реально
$ ln - реальна віртуальна
$ cd віртуальна
$ 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 --фізичний
bash: pwd: -: недійсний варіант
pwd: використання: pwd [-LP]
$ / bin / pwd - фізичний
/ home / username / tmp / real
$ / usr / bin / env pwd --фізичний
/ home / username / tmp / real

1

Як говорили інші, 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.

Редагувати: Щойно помітив стан держав, які вас цікавлять, а не баш. Ну добре; сподіваємось, люди вважають це корисним незалежно.


Це класна ідея. Можливо, добре працювати в простому випадку на робочому столі. Здається, що це може отримати невдачу для надглибоких каталогів, якщо ваш лише запит є Plastico /var/www/vhosts/myveryexcellentwebsite.com/public_html/wp-content/themes/myveryexcellenttheme/js/vendor/excellentjs/ >чи щось подібне.
squarecandy

1
$ pwd
/your/current/directory
$

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

Зі сторінки чоловіка Linux:

Ім'я

pwd - друкує назву поточного / робочого каталогу

Конспект

pwd [ОПЦІЯ] ...

Опис

Роздрукуйте повне ім’я файлу поточного робочого каталогу.

, --логічний

використовувати PWD з навколишнього середовища, навіть якщо він містить символьні посилання

, --фізичний

уникати всіх посилань

- допомогти

відобразити цю допомогу та вийти

--вертальність

інформація про вихідну версію та вихід

ПРИМІТКА: ваша оболонка може мати власну версію pwd, яка зазвичай замінює описану тут версію. Будь ласка, зверніться до документації оболонки, щоб отримати детальну інформацію про параметри, які вона підтримує.

(...)


Це дублює інформацію у прийнятій відповіді понад п'ять років тому . Ви можете додати що-небудь ще?
bertieb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.