Solusi 1:
Setidaknya dua cara:
-
Gunakan
--
argumen.cd -- -2
Ini menggunakan konvensi yang umum untuk alat GNU yaitu tidak memperlakukan apa pun yang muncul setelah
--
sebagai opsi baris perintah.Seperti yang dicatat oleh pemberi komentar, konvensi ini juga didefinisikan dalam standar POSIX:
Perilaku Default: Ketika bagian ini terdaftar sebagai "None.", itu berarti penerapannya tidak perlu mendukung opsi apa pun. Utilitas standar yang tidak menerima opsi, tetapi menerima operan, akan mengenali
"--"
sebagai argumen pertama yang akan dibuang.Persyaratan untuk mengenali
"--"
adalah karena aplikasi yang sesuai membutuhkan cara untuk melindungi operan mereka dari opsi arbitrer apa pun yang mungkin disediakan oleh implementasi sebagai ekstensi. Misalnya, jika utilitas standar foo terdaftar sebagai tidak mengambil opsi, dan aplikasi perlu memberinya nama jalur dengan tanda hubung di depan, itu dapat dilakukan dengan aman sebagai:foo -- -myfile
dan hindari masalah apa pun dengan -m digunakan sebagai ekstensi.
serta:
Pedoman 10:
Argumen--
harus diterima sebagai pembatas yang menunjukkan akhir opsi. Argumen berikut harus diperlakukan sebagai operan, meskipun dimulai dengan'-'
karakter.--
argumen tidak boleh digunakan sebagai opsi atau sebagai operan. -
Tentukan jalur secara eksplisit:
cd ./-2
Ini menentukan jalur yang secara eksplisit menamai direktori saat ini (
.
) sebagai titik awal.cd $(pwd)/-2 cd /absolute/path/to/-2
Ini adalah variasi di atas. Sejumlah variasi seperti itu dimungkinkan; Saya akan menyerahkannya sebagai latihan kepada pembaca untuk menemukan semuanya.
Solusi 2:
Ini harus bekerja:
cd -- -2
-- berarti tidak ada lagi opsi
Solusi 3:
Ini akan berfungsi jika '-2' ada di direktori saat ini.
cd ./-2
Anda dapat melengkapi otomatis dengan mengetik - dan menekan tab.
Solusi 4:
cd /home/...../-2
juga bekerja. Berikan jalur lengkap untuk mengakses.
Solusi 5:
Sebagai pelengkap saja, jika Anda ingin membuang/menghapus direktori ini, Anda dapat menggunakan perintah berikut:
rm -r -- -2