Cara melarikan diri “-” di bash [duplikat]

14

Kemungkinan Gandakan:
Alat Unix: bagaimana jika suatu file diberi nama minus sesuatu?

Tolong beri tahu saya cara menghindarinya:

[root @ unix ~] # ./-sh
-bash: ./-sh: Izin ditolak
[root @ unix ~] # chmod + x -sh
chmod: mode tidak valid: `-sh '
Coba `chmod --help 'untuk informasi lebih lanjut.
[root @ unix ~] #
Soundhax
sumber
# chmod a + x "\\ - sh" chmod: tidak dapat mengakses `\\ - sh ': Tidak ada file atau direktori seperti itu
soundhax

Jawaban:

24

Gunakan --.

Misalnya chmod +x -- -sh. Dalam bahasa GNU, --sarana berarti opsi, jadi -shtidak lagi diuraikan sebagai opsi.

[Sunting] Menambahkan contoh:

kumbang: / home / hennes / test> touch - -sh

kumbang: / home / hennes / test> ls -l - -sh
-rw ------- 1 pengguna hennes 0 2013-01-04 17:20 -sh

kumbang: / home / hennes / test> chmod + x - -sh

kumbang: / home / hennes / test> ls -l - -sh
-rwx ------ 1 pengguna hennes 0 2013-01-04 17:20 -sh
Hennes
sumber
Menariknya, ini tampaknya tidak bekerja dengan gema GNU, meskipun bekerja dengan GNU printf. Ini bekerja: printf -- -sh. Dan ini tidak: echo -n -- -sh.
Lukas Pokorny