ASCII 인코딩으로 지정된 이름을 가진 파일을 어떻게 생성합니까?

ASCII 인코딩으로 지정된 이름을 가진 파일을 어떻게 생성합니까?

벨 기호이고 인쇄할 수 없는 ascii 007이라는 파일을 만들고 싶습니다. 나는 그것을 시도했지만 파일에 배치한 테스트 내용을 인쇄 nano $'\007'하는 ?;라는 파일을 생성했습니다 .cat ?

그렇다면 명시적으로 철자가 아닌 ASCII 인코딩으로 이름이 설정된 파일을 어떻게 생성합니까?

답변1

실제로는 모든 것이 예상대로 작동할 수 있지만 두 가지 다른 현상으로 인해 오해를 받고 있는 것입니다.

  • ls일부 다른 유틸리티는 ?기본적으로 인쇄할 수 없는 문자를 표시합니다.
  • ?단일 문자와 일치하는 글로브입니다.

그 결과 다음과 같은 동작이 발생합니다.

$ echo foo > $'\007'
$ ls
?
$ cat ?
foo

문자 그대로 이라는 이름의 파일이 있는 것 같습니다 ?. 그렇죠? 실제로 이것은 위에서 언급한 두 가지 현상의 우연일 뿐입니다. 문서는 여전히 다음과 같이 호출됩니다 ^G.

$ printf '<%q>\n' *
<$'\a'>
$ ls -lb
total 0
-rw-r--r-- 1 chris chris 0 Aug  1 14:20 \a

파일의 리터럴 이름이 이라는 즉각적인 표시에도 불구하고 ?아마도 모든 것이 예상대로 작동할 것입니다.

관련 정보