Suatu minus (alias tanda hubung) saja bukanlah suatu pilihan, tetapi suatu operan (yaitu argumen yang bukan suatu opsi). Karena itu, menempatkan --sebelum itu tidak berpengaruh. Tanda hubung adalah operan di cd -dan masih operan di cd -- -. Seperti utilitas standar lainnya, cdmemperlakukan operan sebagai operan terlepas dari apakah ada --sebelumnya.
The cdperintah memberikan arti khusus untuk operan -. Yang lainnya adalah direktori untuk beralih. cd -- -aberalih ke direktori yang dipanggil -a, karena -atidak khusus sebagai operan dan --mencegah cdmemperlakukannya sebagai opsi. Ini tidak bekerja -sendiri yang bukan pilihan.
Meletakkan tanda kutip di sekitar -tidak akan membantu, karena pada akhirnya itu akan melewati operan -.
Karenanya, satu-satunya jalan Anda adalah menemukan cara lain untuk mengekspresikan ide yang sama, yaitu nama lain untuk direktori yang sama. Untungnya, ada yang mudah: jika Anda menambahkan ./sebelum nama file relatif, itu masih berarti file yang sama. Itu ./membuat perbedaan yang tidak relevan dalam kasus kami: CDPATHtidak dikonsultasikan ketika nama direktori dimulai dengan /, ./atau ../. Demikian:
cd ./-
Cara lain, karena -adalah direktori, adalah dengan menambahkan /setelahnya. Menambahkan a /di akhir nama file memastikan bahwa file diperlakukan sebagai direktori (khususnya, perintah akan beroperasi pada direktori itu sendiri dan bukan pada symlink jika file tersebut adalah tautan simbolik ke direktori), tetapi sebaliknya membuat tidak ada perbedaan. Demikian:
cd -- -/
Menulis -/disarankan oleh kode penyelesaian, omong-omong, tetapi dalam bash hanya benar-benar berfungsi dengan --sebelumnya, bash tidak memiliki kasus khusus untuk cd -/(zsh tidak).