Windows 시스템의 NTFS의 경우 "ABC" 디렉터리를 생성한 다음 "abc" 디렉터리를 생성하려고 시도하면 Windows에서는 두 디렉터리가 동일한 이름을 가지고 있다고 생각하기 때문에 거부됩니다.
이제 Linux에서는 표준 ntfs-3g 파일 시스템에서는 이런 일이 발생하지 않습니다(NTFS는 기본적으로 둘 다 허용하지만 Windows는 허용하지 않음).
나는 이로 인해 -t lowntfs-3g -o ignore_case
오류가 발생한 것을 발견했지만 모든 것을 소문자로 강제하여 그렇게 했습니다. mkdir ABC
밝혀지다 abc
.
Windows 접근 방식을 따르는 Linux에서 NTFS를 사용할 수 있는 방법이 있습니까? 표시 목적으로 대소문자를 유지하지만 작업 시 대소문자를 구분하지 않습니까?
답변1
Windows 접근 방식을 따르는 Linux에서 NTFS를 사용할 수 있는 방법이 있습니까? 표시 목적으로 대소문자를 유지하지만 작업 시 대소문자를 구분하지 않습니까?
표시 목적시스템에 알려지지 않은 경우 파일 시스템에서 디렉터리 항목을 읽습니다. 그러니 사건을 지키면서도 무시하는 것은 불가능하다동시에.
openat()/fstat()
이는 파일 시스템 구현이 ls
정보를 읽는지(예: 경유로) 읽는지 알 수 없기 때문입니다 cat
.
비록-t lowntfs-3g -o ignore_case
전시하다소문자인 경우 원래 대소문자가 유지됩니다. 두 가지 설치 세션을 통해 이를 확인할 수 있습니다.
파일 시스템 생성:
# dd if=/dev/zero of=/tmp/ntfs bs=1M count=100
# mkfs.ntfs -F /tmp/ntfs
이제ignore_case(및 소문자)를 사용하면 다음이 생성됩니다 AbC
.
# mount.lowntfs-3g -o ignore_case /tmp/ntfs /mnt
# mkdir /mnt/AbC
# ls /mnt
abc
# umount /mnt
그런 다음 대소문자 변환 없이 동일한 파일 시스템을 제거하고 다시 설치합니다.
# mount.ntfs /tmp/ntfs /mnt
# ls /mnt
AbC
# umount /mnt
그러나 달성하려는 것은 가능합니다. 내가 보기에 ntfs-3g
현재 구현에서는 그렇지 않습니다. 이 동작을 수행하려면 사용자 정의 또는 파일 탐색기를 사용할 수 있습니다 ls
(결국 Windows에서 수행함). 예를 들어, 사전 로드 readdir()
도 작동할 수 있을 것 같습니다.