На моїй машині через те, як я налаштував речі:
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 -
Це означає те саме, що ~-.