파일 이름에 어떤 문자라도 삽입할 수 있도록 시스템을 강제합니다.

파일 이름에 어떤 문자라도 삽입할 수 있도록 시스템을 강제합니다.

이번 주에 시험을 봤는데 질문 중 하나가 다음과 같습니다(정답은 1개임).

파일 이름에는 다음 문자가 포함될 수 있습니다.

ㅏ)\

비)/

씨)?

디)!

c) ?보기에 좋을 것 같아서 선택했어요 . 집에 돌아와서 내 컴퓨터(Ubuntu 14.04)에서 테스트했는데 파일이 성공적으로 생성되었습니다. 기성 계산기에는 정답이 표시되어 있습니다 d) !.

시험이 Windows용이라는 것을 알고 있지만 시험지에 플랫폼이 지정되어 있지 않습니다.


분명히 파일 이름은 \문자를 지원하지 않습니다./하지만운영 체제에서 강제로 허용하도록 하는 방법이 있습니까?

\숫자와 문자가 모두 지원된다는 점을 보여줄 수 있다면 /정말 좋을 것 같습니다 .

답변1

파일 이름에 허용되는 문자를 고려할 때 운영 체제 관련 제한 사항과 파일 시스템 관련 제한 사항이라는 두 가지 제한 요소가 있습니다. 이 질문에 대해서는 최신 버전의 Linux 및 ext4에 대해 이야기하고 있다고 가정합니다.

Linux에서는 파일 이름에 두 문자만 허용하지 않습니다. /는 경로 구분 기호이기 때문이고 \0(ASCII NUL)은 cstring을 끝내기 때문입니다. 이 외에도 파일 시스템에는 탐색을 위한 특수 이름 ...하드 링크도 예약되어 있습니다.

질문에 언급된 다른 문자가 허용된다는 것을 쉽게 증명할 수 있습니다.

$ touch '\' '?' '!'
$ ls
!  ?  \

관련 정보