Bagaimana cara cd ke direktori dengan nama yang dimulai dengan "-" (minus)?
10
Kami memiliki beberapa folder yang namanya diawali dengan "-". Jika saya mencoba memasukkannya dengan terminal, cdtafsirkan "-" sebagai opsi. Bagaimana saya bisa mengatur ini?
Orang akan bijaksana untuk menghindari karakter tersebut dalam nama direktori / folder.
Mindwin
Tidak bisakah kamu melakukannya cd '-my-directory'?
OldBunny2800
@ oldbunny2800 Apakah Anda mencobanya?
nohillside
1
@ OldBunny2800 No. Kutipan mencegah shell memperlakukan karakter secara terpisah; string yang dimulai dengan tanda hubung diperlakukan sebagai opsi (atau tidak) oleh perintah yang menerima argumen, terlepas dari bagaimana string itu disajikan ke shell.
chepner
1
@ patrix saya lakukan tepat setelah saya memposting komentar, kemudian terganggu oleh shenanigans terminal lainnya, kemudian lupa tentang komentar saya. :) Chepner ohhh, itu lebih masuk akal.
OldBunny2800
Jawaban:
20
Ini seharusnya bekerja:
cd /path/to/-folderthatstartswithdash
EDIT :
Menurut pertanyaan ini , ini berfungsi jika Anda hanya ingin memasukkan nama:
The --metode adalah jawaban yang benar ... ia akan bekerja dengan sebagian besar perusahaan standar yang menerima nama file sebagai argumen dan menyimpan harus sepenuhnya memenuhi syarat jalan.
Kaithar
The --Metode bekerja karena "bergiliran off" argumen parsing.
Tony Williams
3
Mengapa pembatasan "jika Anda hanya ingin memasukkan nama"? Jika Anda memerlukan lebih banyak argumen, cukup taruh sebelum --.
Federico Poloni
@FedericoPoloni Saya hanya mengatakan jika Anda tidak ingin path lengkap Anda dapat menggunakan yang ini. Semua argumen lain harus diajukan sebelum -.
Tom Shen
19
cd ./-folder
biasanya bekerja dengan baik di sini (dan juga dengan perintah lain)
Satu hal yang menyenangkan tentang solusi ini adalah ia bekerja dengan program atau perintah apa pun, bukan hanya 'cd'; itu tidak tergantung pada perintah atau program yang memiliki perilaku khusus seperti "-" untuk mengubah penafsiran argumen selanjutnya.
Mengapa itu berhasil? Bagaimana utilitas mengetahui perbedaannya? Mengutip dilakukan oleh shell, setelah semua, argumen array utilitas menerima akan persis sama . Saya akui bahwa saya tidak mencoba solusi Anda, tetapi dari sedikit yang saya ketahui tentang kerang, tampaknya cukup jelas, bahwa ini tidak mungkin berhasil.
Jörg W Mittag
Ini seharusnya bekerja pada Windows IIRC, dan itulah yang saya pikirkan pertama kali, tetapi saya dapat mengonfirmasi bahwa itu tidak berfungsi pada mac.
Cullub
2
Jika bekerja pada Windows, itu hanya karena model baris perintah Windows benar-benar konyol dan tidak konsisten. Atau hanya karena perintah Windows tidak memperlakukan -sebagai karakter pilihan. Tetapi tidak mungkin mengutip harus dapat mengubah perilaku ini.
cd '-my-directory'
?Jawaban:
Ini seharusnya bekerja:
EDIT :
Menurut pertanyaan ini , ini berfungsi jika Anda hanya ingin memasukkan nama:
sumber
--
metode adalah jawaban yang benar ... ia akan bekerja dengan sebagian besar perusahaan standar yang menerima nama file sebagai argumen dan menyimpan harus sepenuhnya memenuhi syarat jalan.--
Metode bekerja karena "bergiliran off" argumen parsing.--
.biasanya bekerja dengan baik di sini (dan juga dengan perintah lain)
sumber
Memasukkan nama dalam tanda kutip akan berhasil.
sumber
-
sebagai karakter pilihan. Tetapi tidak mungkin mengutip harus dapat mengubah perilaku ini.