cd vào thư mục trước mà không có tiếng vang của tên thư mục


9

Câu trả lời này đã cho tôi cd -làm tốc ký để thay đổi thư mục trước đây của tôi ở Bash. Nó có một vấn đề lớn: nó in thư mục mà nó thay đổi, làm lãng phí không gian màn hình của tôi, vì thư mục đó sau đó được lặp lại trong lời nhắc trên dòng tiếp theo.

Tôi biết tôi có thể làm cd $OLDPWD, cũng được đề cập trong câu trả lời đó, cd - >/dev/nullnhưng đó là cách gõ nhiều hơn.

Trong bashtrang người đàn ông có ghi:

... hoặc nếu - là đối số đầu tiên và thay đổi thư mục thành công, tên đường dẫn tuyệt đối của thư mục làm việc mới được ghi vào đầu ra tiêu chuẩn.

Làm thế nào tôi có thể làm cho -không phải là đối số đầu tiên? Bằng cách sử dụng bất kỳ cdđối số tùy chọn? Có cách nào khác để triệt tiêu tiếng vang hoặc giảm thiểu gõ mà không cần xác định chức năng / bí danh trên mọi máy tôi làm việc không?


Khá nhiều câu hỏi tương tự ở đây ...
don_crissti 17/1/2015

Câu trả lời:


12

cdchỉ đưa đối số đầu tiên vào tài khoản, bỏ qua tất cả những người khác. Không có tùy chọn nào ảnh hưởng đến tiếng vang của tên đường dẫn trước đó (có thể tài liệu -@này có tác dụng đó, nhưng đó là một tùy chọn không hợp lệ trên hệ thống của tôi).

Nếu bạn không muốn sử dụng bí danh / hàm, có thể cung cấp cho bạn ít ký tự để nhập hơn cd -hoặc chuyển hướng đến /dev/null, đề xuất của tôi là bắt đầu sử dụng mở rộng dấu ngã đặc biệt trong bash:

cd ~-

Từ bashtrang nam:

Nếu tiền tố dấu ngã là một `~ - ', giá trị của biến shell OLDPWD, nếu được đặt, sẽ được thay thế.

Đây dường như là một lĩnh vực khác trong bashđó một số ý nghĩa đặc biệt đã được tạo ra. Mở rộng Tilde thường hoạt động trên $ DIRSTACK, được thao tác / điều tra bởi pushd, popddirs, nó cũng có thể được sử dụng trong các lệnh khác ( cp ~-/somefile .) và nếu bạn đã sử dụng, pushdbạn có thể sử dụng ~N(trong đó N là một số mức được đẩy lùi) các thư mục này (cho cdhoặc các lệnh khác).


BTW nếu bạn có tài khoản trên nhiều máy và giả sử bạn sử dụng ssh để đăng nhập vào chúng từ một nơi, bạn nên xem xét thêm vào ~/.bashrc:

if [ -f ~/.bash_common ]; then
    . ~/.bash_common
fi

và sau đó có tập lệnh trên máy công việc của bạn sử dụng scpđể "đẩy" bash_commonđến từng máy đó. Bằng cách đó, bạn có thể thêm và chia sẻ chức năng chung trên nhiều máy với chi phí tối thiểu.

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.