Bagaimana cara cd ke direktori dengan nama ini "-2" (dimulai dengan tanda hubung)?


Jawaban:


272

Setidaknya dua cara:

  1. Gunakan --argumennya.

    cd -- -2
    

    Ini menggunakan konvensi umum untuk alat GNU yaitu untuk tidak memperlakukan apa pun yang muncul setelah --sebagai opsi baris perintah.

    Seperti yang dicatat oleh komentator , konvensi ini juga didefinisikan dalam standar POSIX :

    Perilaku Default: Ketika bagian ini terdaftar sebagai "Tidak Ada.", Itu berarti bahwa implementasi tidak perlu mendukung opsi apa pun. Utilitas standar yang tidak menerima opsi, tetapi yang menerima operan, harus diakui "--"sebagai argumen pertama yang akan dibuang.

    Persyaratan untuk mengenali "--"adalah karena menyesuaikan aplikasi memerlukan cara untuk melindungi operan mereka dari opsi sewenang-wenang yang mungkin disediakan oleh implementasi sebagai ekstensi. Misalnya, jika utilitas standar foo terdaftar tidak mengambil opsi, dan aplikasi diperlukan untuk memberinya pathname dengan tanda hubung utama, ia dapat dengan aman melakukannya sebagai:

    foo -- -myfile
    

    dan menghindari masalah dengan -m yang digunakan sebagai ekstensi.

    dan juga :

    Pedoman 10:
    Argumen --harus diterima sebagai pembatas yang menunjukkan akhir dari opsi. Argumen berikut harus diperlakukan sebagai operan, bahkan jika mereka mulai dengan '-'karakter. The --Argumen tidak boleh digunakan sebagai pilihan atau sebagai operan.

  2. 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 meninggalkannya sebagai latihan bagi pembaca untuk menemukan semuanya.


23
Bukan hanya GNU, itu bagian dari standar POSIX. Lihat 1.11 Default Uraian Utilitas dan 12.2 Panduan Sintaks Utilitas (pedoman # 10). Dari cdhalaman " cdUtilitas harus sesuai dengan ... bagian 12.2".
Dietrich Epp

Sekarang saya hanya ingin tahu tentang cara cd ke direktori bernama -!
sergiol

2
@sergiol Dengan cara yang sama.
Michael Hampton

1
@ ArtB: Tidak. Mengutip hanya memengaruhi pemisahan bidang. Jadi "hello world"adalah satu argumen tetapi hello worlddua, dan "-2"sama dengan -2.
Dietrich Epp

1
@sergiol: Baik cd -- --atau cd ./--seharusnya bekerja.
Keith Thompson


26

Ini akan berfungsi jika '-2' ada di direktori saat ini.

    cd ./-2

Anda dapat melengkapi otomatis dengan mengetik - dan menekan tab.


11

cd /home/...../-2 juga berfungsi. Berikan jalur lengkap untuk mengakses.


7

Sebagai pelengkap, jika Anda ingin menghapus / menghapus direktori ini, Anda dapat menggunakan perintah berikut:

rm -r -- -2

... dan hanya untuk melengkapi, saya tidak akan pernah melakukan itu, saya akan menggunakan alat grafis seperti mc atau saya akan mengganti nama direktori terlebih dahulu.
Nick

-1

Saya tahu pertanyaan ini sudah dijawab. Jika ada yang punya situasi seperti saya, ini untuk mereka:

Saya menjalankan aplikasi java dan sedang mencari direktori yang dimulai dengan <path>, saya seharusnya menggantinya dengan jalur yang benar sebelum menjalankan aplikasi. Namun, saya lupa melakukannya. Aplikasi membuat direktori bernama <path>.

Saya mencoba cd <path>- memberi saya kesalahan "-bash: kesalahan sintaks dekat baris token tak terduga" Berdasarkan saran di sini (saya mengerti bahwa ini untuk direktori dimulai dengan - dan bukan <) saya mencoba cd -- <path>. Namun, saya mendapat kesalahan yang sama.

Ketika saya mencoba cd \<path>\- ini berhasil!

Informasi latar belakang:

Simbol "<" dan ">" digunakan untuk mengarahkan ulang STDIN dan STDOUT, oleh karena itu mereka harus melarikan diri untuk membuat shell tidak menafsirkannya sebagai pengalihan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.