답변:
--
옵션의 끝을 표시 하려면 double 을 사용하십시오 .
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
--
.
--
중 일부는 보여 주었다.
find . -name '-file_name' -exec cat {} \;
있지만 실제로 그다지 지적하지는 않습니다.
./
접두사 를 사용하는 것 입니다. 휴대 성이 가장 뛰어납니다 (유즈넷 시대의 유닉스 FAQ 참조)