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, cd
memperlakukan operan sebagai operan terlepas dari apakah ada --
sebelumnya.
The cd
perintah memberikan arti khusus untuk operan -
. Yang lainnya adalah direktori untuk beralih. cd -- -a
beralih ke direktori yang dipanggil -a
, karena -a
tidak khusus sebagai operan dan --
mencegah cd
memperlakukannya 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: CDPATH
tidak 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).