ZSH:
Nếu bạn zsh
alias -g ,,=".."
đang sử dụng là những gì bạn cần, nhưng điều này sẽ khiến ",," được mở rộng ở mọi nơi, không chỉ khi được sử dụng cd
.
Từ man zshbuiltins
:
Nếu -g
cờ có mặt, xác định bí danh toàn cầu; bí danh toàn cầu được mở rộng ngay cả khi chúng không xảy ra ở vị trí chỉ huy.
BASH:
Nếu bị hạn chế bash
(vì câu hỏi được gắn thẻ bash ), hãy đọc phần sau:
Đây là một giải pháp bí danh thuần túy, theo yêu cầu, tuy nhiên điều này sẽ làm nhiều hơn yêu cầu có thể làm người dùng bực bội (xem cảnh báo ở cuối bài viết của tôi).
Trích dẫn man bash
:
Nếu ký tự cuối cùng của giá trị bí danh là trống, thì từ lệnh tiếp theo sau bí danh cũng được kiểm tra để mở rộng bí danh.
Do đó nó đủ để bí danh cd
với một không gian thêm (cho phép mở rộng của các đối số tiếp theo của nó) và sau đó bí danh ,,
để ..
. Xem đó
alias cd='cd '
alias ,,='..'
đưa ra chính xác những gì bạn cần.
Lưu ý rằng điều này đúng không chỉ đối với bash
(và việc alias
thực hiện), mà tất cả các trình biên dịch POSIX. Trích dẫn một ví dụ từ man 1p alias
(hướng dẫn không mô tả rõ ràng tính năng này, chỉ thông qua một ví dụ):
Thiết lập nohup để nó có thể xử lý một đối số mà chính nó là tên bí danh:
alias nohup="nohup "
Cảnh báo:
Khi @PeterCordes viết trong bình luận của mình, nó sẽ tự động khiến các bí danh khác mở rộng khi được viết sau cd
. Nó có thể yêu cầu bạn viết cd \grep
nếu bạn muốn thay đổi thư mục thành tên grep
nhưng bạn grep
là bí danh grep --color=auto
. Nếu không có dấu gạch chéo ngược, cd
sẽ báo cáo lỗi "quá nhiều đối số" (bạn không thể cd
vào hai thư mục cùng một lúc)!.
$ ,,
sẽ phàn nàn, như vậy :bash: ..: Is a directory
. (Nói cách khác, nó không phải là một thực thi.)