Nguyên tắc cú pháp tiện ích POSIX (cụ thể là # 13) chỉ định rằng đối với các tiện ích mong muốn đọc tên tệp, -có nghĩa là đầu vào tiêu chuẩn và cho các tiện ích mong muốn tên tệp ghi vào, -có nghĩa là đầu ra tiêu chuẩn. Ví dụ, cat somefile -sao chép nội dung của somefileđầu ra tiêu chuẩn của nó, theo sau là những gì nó đọc trên đầu vào tiêu chuẩn của nó.
Hướng dẫn này không áp dụng cho cdlệnh vì nó không đọc hoặc ghi vào tệp. cdlàm một cái gì đó khác nhau: đối số -có nghĩa là thư mục trước đó. Lệnh cd -tương đương với cd "$OLDPWD" && pwd. Hành vi này là cụ thể cho cdlệnh và các lệnh được truyền cảm hứng trực tiếp như pushd.
Lưu ý rằng đó -là một toán hạng, không phải là một tùy chọn. Chỉ các đối số bắt đầu bằng -và không chỉ -hoặc --là các tùy chọn. Ý nghĩa chính của việc là một toán hạng là --không ảnh hưởng đến ý nghĩa đặc biệt của nó. Ví dụ: cd -- -Pthay đổi thư mục con được gọi -P, nhưng cd -- -giống như cd -, nó không thay đổi thành thư mục được gọi -. Tương tự, cat -- -không đọc từ một tệp được gọi -nhưng từ đầu vào tiêu chuẩn.
cdlà một nội trang, không phải là lệnh bên ngoài (cũng không có cách nào để làm việc như một).cd -do đó là một tính năng cấp vỏ.