Như những người khác đã giải thích, thư mục được thay đổi trong quy trình con của tập lệnh của bạn, không phải trong quy trình đầu cuối mà tập lệnh được gọi. Sau khi tiến trình con chết, bạn quay trở lại thiết bị đầu cuối còn lại ở đó.
Một số lựa chọn thay thế:
1. Liên kết tượng trưng
Đặt một liên kết tượng trưng trong nhà của bạn đến con đường dài bạn muốn dễ dàng truy cập
$ ln -s /home/alex/Documents/A/B/C ~/pathABC
sau đó truy cập vào thư mục với:
$ cd ~/pathABC
2. Bí danh
Đặt bí danh trong ~ / .bashrc:
alias pathABC="cd /home/alex/Documents/A/B/C"
(từ đây )
3. Chức năng
Tạo một chức năng thay đổi thư mục, chức năng chạy trong quá trình của thiết bị đầu cuối của bạn và sau đó có thể thay đổi thư mục của nó.
(từ đây )
4. Tránh chạy khi còn nhỏ
Nguồn kịch bản của bạn thay vì chạy nó. Tìm nguồn cung ứng (được thực hiện bởi .
hoặc source
) làm cho tập lệnh được thực thi trong cùng một vỏ thay vì chạy trong lớp con của chính nó.
$ . ./pathABC
(từ đây và đây )
5. vars có thể cd
Đặt cdable_vars
tùy chọn trong của bạn ~/.bashrc
và tạo một biến môi trường cho thư mục:
shopt -s cdable_vars
export pathABC="/home/alex/Documents/A/B/C"
Sau đó, bạn có thể sử dụng cd pathABC
(từ đây )