--
विकल्पों के अंत को चिह्नित करने के लिए डबल का उपयोग करें:
cat -- -<FILENAME>
अन्य कार्यक्रम जैसे कि touch
, rm
या git checkout
इस सम्मेलन का भी पालन करें:
$ touch -- -file
$ ll
total 0
-rw-r--r-- 1 ja ja 0 Mar 10 13:13 -file
$ echo hi! >> -file
$ cat -- -file
hi!
$ rm -- -file
$ echo $?
0
चेतावनी: स्क्रिप्ट के --
बाद हमेशा उपयोग करना अच्छा है rm
। एक हमलावर --rf
एक निर्देशिका में फ़ाइल रख सकता है और rm *
इसे रन पैरामीटर के रूप में ले जाएगा। यह देखो:
$ touch A
$ touch B
$ mkdir dir
$ touch dir/C
$ touch -- -rf
$ rm *
$ ll
total 0
-rw-r--r-- 1 ja ja 0 Mar 10 13:21 -rf
ओह, यह हमारा मतलब नहीं है, हम निर्देशिकाओं को हटाना नहीं चाहते। हमें इस्तेमाल करना चाहिए --
:
$ touch A
$ touch B
$ mkdir dir
$ touch dir/C
$ touch -- -rf
$ rm -- *
rm: cannot remove `dir': Is a directory
$ ll
total 4.0K
drwxr-xr-x 2 ja ja 4.0K Mar 10 13:22 dir
./
उपसर्ग का उपयोग करना है । यह सबसे पोर्टेबल है (cf usenet युग की यूनिक्स एफएक्यू)