-- means options end, see man rm for details.
let's have a test on --.
bash-4.3> ls -a -l init/*.c
-rw-rw-r-- 1 alloc alloc 8720 9月 9 2014 init/calibrate.c
-rw-rw-r-- 1 alloc alloc 14608 9月 9 2014 init/do_mounts.c
-rw-rw-r-- 1 alloc alloc 3511 9月 9 2014 init/do_mounts_initrd.c
-rw-rw-r-- 1 alloc alloc 8364 9月 9 2014 init/do_mounts_md.c
-rw-rw-r-- 1 alloc alloc 8858 9月 9 2014 init/do_mounts_rd.c
-rw-rw-r-- 1 alloc alloc 14063 9月 9 2014 init/initramfs.c
-rw-rw-r-- 1 alloc alloc 728 9月 9 2014 init/init_task.c
-rw-rw-r-- 1 alloc alloc 25250 9月 9 2014 init/main.c
-rw-rw-r-- 1 alloc alloc 1494 9月 9 2014 init/noinitramfs.c
-rw-rw-r-- 1 alloc alloc 1182 9月 9 2014 init/version.c
bash-4.3> ls -a -- -l init/*.c
<span style="color:#FF6666;"><strong>ls: cannot access -l: No such file or directory</strong></span>
init/calibrate.c init/do_mounts_rd.c init/noinitramfs.c
init/do_mounts.c init/initramfs.c init/version.c
init/do_mounts_initrd.c init/init_task.c
init/do_mounts_md.c init/main.c
From the above examples, we can see -- as end of options.
touch -- -test.log or touch ./-test.log
rm -- -test.log