На моїй машині через те, як я налаштував речі:
cd ~ # /work1/jleffler
cd ~jleffler # /u/jleffler
Перший звертає увагу на значення змінної середовища $HOME
; Я навмисно встановив свою $HOME
локальну файлову систему замість файлової системи, встановленої NFS. Другий читає з файлу паролів (приблизно; NIS трохи ускладнює речі) і виявляє, що файл пароля говорить, що мій домашній каталог /u/jleffler
і змінює цей каталог.
Прикро, що більшість програмного забезпечення поводиться як вище (і специфікація POSIX для оболонки вимагає такої поведінки). Я використовую деяке програмне забезпечення (і у мене немає великого вибору щодо його використання), яке трактує інформацію з файлу паролів як поточне значення $ HOME, що є неправильним.
Застосовуючи це до питання - як уже вказували інші, " cd ~x
" переходить до домашнього каталогу користувача "x", і загальніше, коли відбувається розширення tilde, ~x
означає домашній каталог користувача "x" (і це помилка якщо користувача "x" не існує).
Можливо, варто згадати, що:
cd ~- # Change to previous directory ($OLDPWD)
cd ~+ # Change to current directory ($PWD)
Я не можу відразу знайти використання для '~+
', якщо ви не зробите якісь дивні речі з рухомими посиланнями на шляху, що веде до поточного каталогу.
Ви також можете зробити:
cd -
Це означає те саме, що ~-
.