--
বিকল্পগুলির শেষ চিহ্নিত করতে ডাবল ব্যবহার করুন:
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
./
উপায়টি আসলে উপসর্গটি ব্যবহার করা । এটি সর্বাধিক বহনযোগ্য (সিএফ ইউজনেট যুগের ইউনিক্স এফএকিউ)