Saya selalu bertanya-tanya: sebagian besar alat GNU / Unix mengambil opsi dalam bentuk "minus something", terkadang diikuti oleh argumen. Bagaimana jika Anda mendapat file bernama minus sesuatu?
$ ls
-f
$ rm -f
$ ls
-f
$ mv -f abc
mv: missing destination file operand after `abc'
Try `mv --help' for more information.
$ cat -f
cat: invalid option -- 'f'
Try `cat --help' for more information.
atau
$ ls
-ohello.c
$ gcc -ohello -ohello.c
gcc: fatal error: no input files
compilation terminated.
Ini hanya karena penasaran; Saya tidak punya kasus penggunaan untuk ini.
Jawaban:
Untuk menghapus file yang bernama
-x
, gunakanrm -- -x
(--
berarti akhir dari opsi) ataurm ./-x
.sumber
Cukup umum untuk menanyakan jenis pertanyaan ini dalam pengaturan wawancara. Cara umum untuk menangani file dengan tanda hubung adalah:
sumber
Pertanyaan umum di Unix. Cara utama adalah memberikan nama path lengkap ke file, sehingga tidak memiliki tanda hubung di depannya:
Beberapa perintah, Anda dapat menggunakan tanda hubung dengan sendirinya (atau tanda hubung ganda) untuk mengakhiri opsi. Namun, ini tidak selalu benar dengan semua perintah, atau bahkan perintah yang sama pada sistem yang berbeda.
sumber
kamu harus menggunakan
Ex:
sumber