Saya mengunduh lessn ke server web saya dan membuka ritsletingnya.
Ini berisi folder bernama -
. Saya berasumsi saya tahu bagaimana menghadapinya, tapi ternyata tidak.
Saya mencoba cd -- -
, tetapi itu tidak memiliki efek yang diinginkan. Menggunakan tanda kutip tampaknya juga tidak memengaruhinya. Saya menaruh garis miring di semua tempat, tetapi tidak berhasil.
Apa cara yang tepat untuk mengubah ke folder ini?
Jawaban yang Diterima:
Anda ingin menghindarinya menjadi parameter, jadi kami mencoba menambahkan sesuatu padanya. Direktori saat ini dapat diakses dengan .
, dengan demikian subfolder -
dapat diakses sebagai alternatif dengan ./-
.
cd ./-
Alasan cd -- -
tidak berfungsi karena ini diterapkan secara berbeda jika Anda membandingkan rm
(lihat man rm
) ke cd
(lihat man bash
atau man cd
), cd
memiliki interpretasi berbeda yang melihat -
sebagai parameter (lihat man bash
atau man cd
).
Perlu juga diperhatikan bahwa cd
adalah fungsi bawaan Shell, seperti yang dapat dibaca dalam jawaban ini:
cd
bukan perintah eksternal – ini adalah fungsi bawaan shell. Ini berjalan dalam konteks shell saat ini, dan bukan, seperti yang dilakukan perintah eksternal, dalam konteks fork/exec sebagai proses terpisah.
Ini menjelaskan mengapa implementasinya berbeda, karena Bash dan Coreutils adalah dua hal yang berbeda.
Anggap saja Anda tidak akan percaya ini, bagaimana kami memastikannya? Gunakan which
dan type
.
$ which cd && type cd
which: no cd in (/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.7.2:/usr/games/bin
cd is a shell builtin
$ which rm && type rm
/bin/rm
/bin/rm is /bin/rm