Làm thế nào để quay lại n cấp thư mục từ dòng lệnh?


7

Ví dụ: tôi thực hiện các lần sau cdliên tiếp-

cd /tmp
cd /home/admin
cd /root/
cd /some_other/directory

Bây giờ tôi đang ở trong /some_other/directory. Bây giờ, có cách nào để quay lại /tmp, thư mục từ nơi tôi bắt đầu, từ dòng lệnh không? Giống như chúng ta điều hướng các thư mục bằng nút quay lại trong GUI?

cd - chỉ đưa tôi trở lại một cấp.

Câu trả lời:


6

Đây là vỏ cụ thể. Trong trình bao POSIX thuần túy, bạn không thể gõ lại cd / tmp. Trong csh, tcsh, bash hoặc zsh, bạn có thể sử dụng pushdthay vì thay cdđổi thư mục và sau đó popd +1chuyển sang thư mục đầu tiên bạn đẩy lên ngăn xếp.


4

Đọc bài viết này từ LinuxGazette về việc thêm lịch sử vào cdmột vài tập lệnh đơn giản. Nó khá hữu dụng.

Nếu bạn muốn trở nên lạ mắt, thì có một chương trình được gọi là autojump(trang chủ ở đây ) lưu giữ lịch sử của các thư mục được truy cập, cung cấp các phím tắt và thường hỗ trợ "thông minh" cd.

autojump là một cách nhanh hơn để điều hướng hệ thống tập tin của bạn. Nó hoạt động bằng cách duy trì cơ sở dữ liệu của các thư mục bạn sử dụng nhiều nhất từ ​​dòng lệnh. Lệnh jumpstat cho bạn thấy nội dung hiện tại của cơ sở dữ liệu. Bạn cần phải làm việc một chút trước khi cơ sở dữ liệu có thể sử dụng được. Khi cơ sở dữ liệu của bạn đã hoàn tất một cách hợp lý, bạn có thể chuyển nhảy vào một thư mục ed "cd" thông thường bằng cách gõ:j dirspec


1

Tôi đang tìm kiếm cùng một vấn đề và tìm thấy cách giải quyết / thay đổi bên dưới để thay đổi thư mục n trở lại.

Chỉ cần thêm phần sau vào bash_profile nếu bạn đang sử dụng bash shell. Đối với các shell khác, sử dụng nó theo cú pháp của họ.

    alias ..="cd .."
    alias ..2="cd ../.."
    alias ..3="cd ../../.."
    alias ..4="cd ../../../.."
    alias ..5="cd ../../../../.."

    # cd /tmp/very/long/directory/structure/that/is/too/deep
    #..4
    [Note: use ..4 to go up 4 directory level]
    # pwd
    /tmp/very/long/directory/structure/

Bạn cũng có thể sử dụng chỉ các dấu chấm thay vì các dấu chấm theo sau là một số. Mô tả chi tiết có sẵn trong liên kết dưới đây.

Nguồn: http : //www.thegeek ware.com/2008/10/6-awgie-linux-cd-command-hacks-productivity-tip3-for-geek/


Đó không phải là những gì họ yêu cầu mặc dù ... Ngoài ra, bạn có thể làm cho nó dễ dàng hơn với chương trình con: back () { for i in `seq 0 $1`; do cd ../; done }và sau đó gọi back 3ví dụ. Nhưng người hỏi câu hỏi muốn biết làm thế nào để quay lại vài bước lịch sử cd.
Matt Fletcher

Cảm ơn vì đã ngẩng cao đầu .. Tôi đã nghĩ rằng đây là một cách để nhảy từ thư mục hiện tại đến nơi anh ấy bắt đầu nếu anh ấy nhớ có bao nhiêu thư mục anh ấy đi qua. Cuộc gọi chương trình con của bạn là tốt đẹp, nó dễ dàng hơn để xác định và sử dụng.
MVSR
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.