대시 파일을 읽는 방법

대시 파일을 읽는 방법

줄로 구분하지 않고 터미널에서 대시 파일을 읽는 방법./

예를 들어 a를 읽으려면 - file다음과 같이 읽을 수 있습니다.

cat ./-file_name

묻다:동일한 목표를 달성할 수 있는 다른 방법이 있습니까?

답변1

--옵션의 끝을 표시하려면 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

경고하다:스크립트에서는 항상 after를 사용하는 것이 --좋습니다 . 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

답변2

stdin에서 입력을 받는 명령의 경우 리디렉션을 사용할 수 있습니다.

cat <-file_name

답변3

대안이 이상해집니다.

dd if=-x 2>/dev/null

관련 정보