Quay trở lại thư mục trước trong shell


306

Có cách nào để quay lại thư mục trước mà chúng ta đã sử dụng bash, tcsh mà không cần sử dụng Pushd / popd không? Tôi muốn gõ một cái gì đó như "trở lại" và đã trở lại thư mục trước đó tôi đang ở.

Biên tập:

"cd -" hoạt động, nhưng chỉ cho các thư mục hiện tại và trước đây. Có cách nào tôi có thể quay lại thư mục trước đó như cách bạn có thể quay lại trình duyệt web không?

Trân trọng


1
Như đã lưu ý dưới đây, bạn có thể làm như vậy bằng cách sử dụng "Pushd" và "popd".
xanh

8
Chỉ cần một ghi chú bên "cd -" đi đến
direcotry

1
Câu trả lời hay nhất imho : unix.stackexchange.com/a/180640/158177 cung cấp cd -1 cho cd -9 mà tôi nghĩ là những gì OP yêu cầu
Titou

Câu trả lời:


413

cd - (quay lại thư mục trước)

Nếu bạn muốn có thể đi đến các thư mục trước đó, điều này là không thể. Nhưng hãy kiểm tra tập lệnh này và hướng dẫn:

Lịch sử của các thư mục đã truy cập trong BASH

Lệnh cd hoạt động như bình thường. Tính năng mới là lịch sử của 10 thư mục cuối cùng và lệnh cd được mở rộng để hiển thị và truy cập nó. cd - (hoặc chỉ cần nhấn ctrl + w) sẽ hiển thị lịch sử. Ở phía trước của mỗi tên thư mục bạn nhìn thấy một số. cd -num với số bạn muốn nhảy vào thư mục tương ứng từ lịch sử.


20
cũng Pushd và popd có thể hữu ích
lorenzog

6
@lorenzog: lydonframra, trong câu hỏi của anh ấy, đã nói "không sử dụng Pushd / popd"
Snark

@ ogc-nick vì sử dụng điều này cd --theo cách giống như menu, bạn nên sử dụng tập lệnh được đề cập
Ram

1
@ ogc-nick không nó không. Đơn --giản chỉ cần tách một lệnh và các tùy chọn của nó khỏi các tham số (xem bài này ). Bởi vì không có đối số nào theo sau --, lệnh cuối cùng sẽ cdchuyển sang thư mục chính của bạn. Đó có thể là thư mục thứ hai trước đó, nhưng đó chỉ là sự trùng hợp.
Griddo

wow cú pháp đường nhiều
BugWhisperer

24

Bạn cũng có thể sử dụng biến cd $OLDPWD. Điều này cũng có thể được sử dụng trong các kịch bản shell.


6
$ OLDPWD duy trì thư mục cuối cùng mà bạn đến từ đó là tốt cho các tập lệnh. Tôi sử dụng $ OLDPWD với lệnh cp rất nhiều. Ví dụ: cp -v $ OLDPWD / tệp.
Neil Wightman

1

Đối với Windows (bao gồm cả trường hợp bảng điều khiển dấu nhắc dấu phẩy Node.js) không hoạt động cd - Để di chuyển bạn lên một thư mục hoạt động

cd ..

3
cd .. di chuyển đến thư mục cha, đây không phải là chủ đề của câu hỏi.
ViaSat

1
Đây là bash ở đây, không phải Windows.
Timo

0

Tôi tìm thấy cách dễ nhất để làm điều đó là với chỉnh sửa sức mạnh .bashrc này: https://github.com/wting/autojump . Bạn có thể "đánh dấu" các thư mục mà bạn điều hướng đến, đặt cho chúng một tên viết tắt dễ nhớ (lời khuyên của tôi; những điều đã nói ở trên không có trong tài liệu), chẳng hạn như Pics for Pictures, v.v. 'jump' đưa bạn trở lại thư mục bạn 'đánh dấu,' và 'đánh dấu' liệt kê các thư mục bạn đã thêm vào 'ngăn xếp' (như với Pushdpop d), với lợi thế được thêm vào là các dấu của bạn vẫn giữ nguyên từ phiên này sang phiên tiếp theo, quảng cáo vô hạn.

Tôi vẫn chưa thử nó trên nhiều ổ cứng, nhưng kết quả sẽ tương tự với những người sử dụng một âm lượng.

S Wright


-1

Nếu bạn đã đi xuống cây thư mục và muốn quay trở lại, đó cd ..là sở thích cá nhân của tôi. Bạn có thể nhảy xung quanh trong một nhánh của cây khá dễ dàng bằng cd ..cách đi lên một thư mục và cd ../..hai và cd ../../..ba, v.v. Bạn cũng có thể đi lên và xuống một nhánh khác với cùng một lệnh, chẳng hạn như cd ../../examplehoặc cd ../../../example/examplev.v. qua lại giữa các thư mục, cd -hoặc $OLDPWDlà cược tốt nhất của bạn, như những người khác đã đề cập.


Bất kỳ lý do cụ thể tại sao điều này đã bị hạ cấp? Nó chứa câu trả lời đúng, mặc dù có lẽ không phải là câu trả lời duy nhất.
Adam Erickson

-2

Tôi nghĩ rằng cd ..có thể giúp đỡ. Nếu bạn thực hiện ls -atrong bất kỳ thư mục nào, bạn sẽ thấy có hai mục: một mục có tên "." và một cái tên khác ".."; dấu chấm đơn là tham chiếu đến thư mục bạn đã có, trong khi dấu kép là thư mục trước đó trong đường dẫn.


22
..không phải là thư mục trước, nó chỉ là thư mục mẹ.
Der Hochstapler

4
Câu trả lời này cung cấp thông tin hữu ích ngay cả khi nó không trả lời đúng câu hỏi. Do đó, không có điểm nào trong việc bỏ phiếu tiêu cực về nó, tôi ủng hộ nỗ lực này.
Titou

1
Đây không phải là Berkley, không có giải thưởng đặc biệt nào chỉ dành cho sự tham gia
nathanchere
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.