Trong terminal, làm thế nào tôi có thể xác định một khóa để đi đến thư mục trước mà tôi đã ở khi thay đổi thư mục bằng cd
lệnh?
Ví dụ, tôi vào /opt/soft/bin
và tôi cd
vào /etc/squid3
và tôi muốn quay lại thư mục đầu tiên.
Trong terminal, làm thế nào tôi có thể xác định một khóa để đi đến thư mục trước mà tôi đã ở khi thay đổi thư mục bằng cd
lệnh?
Ví dụ, tôi vào /opt/soft/bin
và tôi cd
vào /etc/squid3
và tôi muốn quay lại thư mục đầu tiên.
Câu trả lời:
Bạn có thể dùng
cd -
hoặc bạn có thể sử dụng
cd $OLDPWD
cd -
. Ví dụ: khi bạn nhập cd /usr/local
bạn biết rằng bạn đang ở trong đó /usr/loal
, nhưng khi bạn nhập cd -
bạn không luôn nhớ từ thư mục nào bạn đến từ đâu. Vì vậy, nó tiết kiệm cho bạn từ gõ cd -; pwd
. Nhưng đây là tất cả suy đoán.
alias -- -='cd -'
sau đó sử dụng -
(1 char) thay vì cd -
(4 char). Nhanh hơn:D
cd -
hai lần. Đừng cd /; cd /usr; cd -; cd -
bạn phải ở trong /usr
. Nhưng có lẽ tôi nhớ đã hiểu câu hỏi của bạn.
Các câu trả lời khác chắc chắn là đầy đủ theo nghĩa trả lời trực tiếp. cd -
và cd $OLDPWD
chắc chắn là những lựa chọn chính cho việc này. Tuy nhiên, tôi thường thấy rằng việc tham gia vào một quy trình làm việc với pushd
và popd
hoạt động tốt hơn.
Câu chuyện dài, nếu bạn đang di chuyển vào một thư mục với mục đích cuối cùng là quay lại nơi bạn bắt đầu, hãy sử dụng pushd
/ popd
.
Sự khác biệt chính dễ dàng được hiển thị bằng một ví dụ.
$ cd dir1
$ pushd dir2
Tại thời điểm này, bạn có một ngăn xếp thư mục dir2, dir1
. Chạy pushd
mà không có đối số sẽ đưa bạn trở lại dir1
với ngăn xếp như bây giờ dir1, dir2
. popd
sẽ làm như vậy, nhưng sẽ để lại cho bạn một ngăn xếp thư mục trống. Điều này không khác nhiều so với cách bạn sẽ làm với cd -
quy trình làm việc.
Tuy nhiên, bây giờ bạn có thể thay đổi thư mục nhiều lần và quay lại dir1
. Ví dụ,
$ cd dir1
$ pushd dir2
$ cd dir3
Nếu bạn chạy popd
vào thời điểm này, bạn sẽ quay trở lại dir1
.
pushd
và quay lại thư mục trước trong khi popd
-ing.
dirs -v
, nhưng thực tế đối với tôi là thường thì trường hợp đơn giản là tất cả những gì tôi thực sự sử dụng. (Hoặc, tệ hơn, tôi mắc lỗi khi thử push +2
hoặc tương tự) Ngoài ra, tôi nghĩ các bước bé để có ai đó thử quy trình làm việc. :)
cd
lên đỉnh của ngăn xếp mà không xuất hiện?
Bạn nên sử dụng:
cd ~-
nó thực hiện giống như cd -
(từ câu trả lời hiện được chấp nhận) mà không có tiếng vang khó chịu của thư mục và dễ gõ hơn cd "$OLDPWD"
hoặc cd - > /dev/null
.
alias -- -='cd "$OLDPWD"'
sau đó sử dụng -
(1 char) thay vì cd ~-
(5 char). :)
cd ~-/..
hoạt động nhưng cd -/..
không!
Bạn có thể "xác định khóa" cho 'cd -' bằng cách chỉnh sửa tệp '~ / .bashrc' của mình và bao gồm bí danh cho lệnh. Ví dụ: bạn có thể thêm 'cdc' để biến nó thành 'cd -' sẽ cung cấp cho bạn một cách ngắn hơn để đến thư mục cuối cùng bằng cách thêm:
alias cdc='cd -'
Bằng cách này, bạn chỉ cần gõ 'cdc' và nó sẽ đưa bạn vào thư mục làm việc cuối cùng của bạn.
bind '"\e[24~":"\C-k \C-ucd -\n"'
(hoặc tốt nhất là di chuyển nó sang inputrc
tệp như đã đề cập trong câu trả lời).
cd ..
đi đến thư mục tiền lệ trong cây của thư mục.
cd -
đi đến thư mục mà trước đó. Lệnh này không hoạt động trên một số bản phân phối (ubfox 16.04), hoạt động trong debian 9.