파일 시스템 이름에는 공백이 허용되지 않습니다.

파일 시스템 이름에는 공백이 허용되지 않습니다.

최신 버전의 Linux 배포판에서는 파일 및 디렉터리 이름 지정에 공백을 허용합니다. 이를 비활성화하고 파일 시스템 이름 지정에 공백이 없는 이전 UNIX 표준으로 돌아가는 방법이 있는지 알고 싶습니다. 그리고 Ubuntu.RHELFedora

답변1

이건 불가능 해. 또한 "대부분의 Linux 배포판의 최신 버전"이 무엇을 의미하는지 설명해주세요. 제가 아는 한 공백은 1974년에 생성된 UNIX System V 파일 시스템의 첫 번째 버전부터 지원되었습니다.

답변2

/대부분의 다른 Unix 변형(원본 버전 포함)과 마찬가지로 Linux에서는 항상 파일 이름에 null과 null을 제외한 모든 바이트가 포함될 수 있도록 허용합니다.

이를 변경하려면 커널에서 파일 시스템 코드를 수정해야 합니다. 나는 이 작업을 수행하는 기존 패치를 알지 못합니다. 지원되지 않는 파일 이름을 생성하려고 시도할 때 발생하는 표준 오류 코드도 없으며, 특히 파일 이름이나 경로 길이가 너무 큰 경우를 위한 ENAMETOOLONG만 있습니다. EINVAL은 합리적인 선택입니다. Linux의 FAT 드라이버가 사용하는 것입니다.

POSIX는 다음을 정의합니다.이식 가능한 파일 이름 문자 집합이는 ASCII 문자, 숫자 및 세 개의 구두점으로 구성됩니다 .-_. 그러나 많은 Unix 응용 프로그램은 다른 문자가 작동하기를 원합니다. 일부 프로그램에는 이름이 포함되어 있습니다 +(예: c++), X11 및 Perl에서 필요 :, CVS에서 필요 ,, Emacs에서 필요 #, Gnome에서 필요 %(gconf의 경우), 많은 프로그램에서 ~백업 파일 필요, 일부 프로그램은 %URL 인코딩을 원 하고 일부 프로그램은 =Base64 +등을 원합니다.

관련 정보