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 cdvớ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 aliasthự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 \grepnếu bạn muốn thay đổi thư mục thành tên grepnhưng bạn greplà bí danh grep --color=auto. Nếu không có dấu gạch chéo ngược, cdsẽ báo cáo lỗi "quá nhiều đối số" (bạn không thể cdvà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.)