ใช้สองครั้ง--
เพื่อทำเครื่องหมายสิ้นสุดตัวเลือก:
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
./
คำนำหน้า มันเป็นแบบพกพามากที่สุด (คำถามที่พบบ่อยเกี่ยวกับ Unix ยุค Usenet)