Trên máy của tôi, do cách tôi thiết lập mọi thứ, đang làm:
cd ~ # /work1/jleffler
cd ~jleffler # /u/jleffler
Đầu tiên chú ý đến giá trị của biến môi trường $HOME
; Tôi đã cố tình đặt của mình $HOME
thành hệ thống tệp cục bộ thay vì hệ thống tệp được gắn NFS. Lần thứ hai đọc từ tệp mật khẩu (khoảng; NIS làm phức tạp mọi thứ một chút) và thấy rằng tệp mật khẩu cho biết thư mục chính của tôi là gì /u/jleffler
và thay đổi thành thư mục đó.
Điều khó chịu là hầu hết phần mềm hoạt động như trên (và đặc tả POSIX cho shell yêu cầu hành vi này). Tôi sử dụng một số phần mềm (và tôi không có nhiều lựa chọn về việc sử dụng nó) xử lý thông tin từ tệp mật khẩu là giá trị hiện tại của $ HOME, điều này là sai.
Áp dụng điều này cho câu hỏi - như những người khác đã chỉ ra, ' cd ~x
' đi đến thư mục chính của người dùng 'x' và nói chung, bất cứ khi nào mở rộng dấu ngã được thực hiện, ~x
có nghĩa là thư mục chính của người dùng 'x' (và đó là một lỗi nếu người dùng 'x' không tồn tại).
Điều đáng nói là:
cd ~- # Change to previous directory ($OLDPWD)
cd ~+ # Change to current directory ($PWD)
Tôi không thể tìm thấy cách sử dụng ngay lập tức cho ' ~+
', trừ khi bạn làm một số việc kỳ lạ với việc di chuyển các liên kết tượng trưng trong đường dẫn đến thư mục hiện tại.
Bạn cũng có thể làm:
cd -
Điều đó có nghĩa là giống như ~-
.