Linux는 대소문자를 구분하고 대소문자를 구분하지 않으며 항상 불편합니까?

Linux는 대소문자를 구분하고 대소문자를 구분하지 않으며 항상 불편합니까?

나는 Ubuntu 10을 사용하고 있으며 터미널에서 탭을 사용하여 파일 경로를 자동 완성할 때와 같이 불편할 때는 대소문자를 구분하지만 MV 및 CP 명령을 사용할 때는 대소문자를 구분하지 않는다는 사실을 빨리 알게 되었습니다(역시 불편함) 대소문자가 다른 파일 이름을 복제하려고 할 때).

본질적으로 작동하려면 이 명령이 필요하지만 작동하지 않습니다.

cp ./filename.txt ./FileName.txt

나는 단지 다음과 같이 끝납니다 filename.txt:

여기에 이미지 설명을 입력하세요

대소문자는 다르지만 이름은 같은 파일을 같은 디렉터리에서 어떻게 얻을 수 있나요?

편집: 아래 Maerics의 설명은 제가 실제로 대소문자를 구분하지 않는 NTFS를 실행하는 Windows 공유 드라이브에서 개발하고 있다는 사실을 기억하는 데 도움이 되었습니다. 이것이 CP 및 MV가 오류를 생성하지 않더라도 파일이 복사되지 않는 이유입니다(또는 IS 복사될 가능성이 높지만 Windows가 이미 존재하는 파일을 대체함).

답변1

NTFS 1 과 VFAT는 대소문자를 구분하지 않고 대소문자만 보존합니다. 즉 FileName.txt, 이라는 파일을 생성하면 파일 시스템은 대소문자 혼합 이름을 유지하지만 FILENAME.TXT, filename.txt또는 등 동일한 문자의 대소문자 조합을 사용하여 파일에 액세스할 수 있습니다 fileNAME.txt. 이는 동일한 디렉터리에 대문자/소문자만 변형된 동일한 철자를 가진 두 개의 파일을 가질 수 없음을 설명합니다.

SMB로 내보낸 파일 시스템은 Windows 클라이언트를 혼동하지 않도록 이 동작을 구현해야 합니다.

ZFS는 속성을 사용하여 그런 방식으로 동작하도록 구성할 수 있습니다 casesensitivity=mixed.

1 기술적으로 NTFS는 대소문자를 구분하지만 이 유형의 OS 마운트 파일 시스템은 거의 항상 이 기본 기능을 숨기고 대소문자만 보존하도록 구성됩니다. 그러나 Windows는 이 레지스터 키를 수정하여 대소문자 구분을 활성화할 수 있으며 Linux는 및 마운트 옵션 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\dword:ObCaseInsensitive에 따라 다양한 동작으로 이러한 파일 시스템을 마운트할 수 있습니다 .ignore_casewindows_names

답변2

다음 행을 에 추가하여 bash에서 대소문자를 구분하지 않는 파일 이름 완성을 활성화할 수 있습니다 $HOME/.inputrc.

set completion-ignore-case On

파일 이름 관련: 이는 파일 시스템에 따라 다릅니다. Linux 파일 시스템에서는 문제가 없습니다. 다른 파일 시스템에서는 mount 명령에 대한 옵션을 사용하여 동작을 제어할 수 있습니다. mount(8)마운트에 사용 가능한 옵션에 대한 자세한 내용은 매뉴얼 페이지를 참조하세요 .

답변3

이것이 파일 시스템의 속성입니까, 아니면 다른 것입니까?

pa-ubuntu-11388$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 10.04.3 LTS
Release:        10.04
Codename:       lucid
pa-ubuntu-11388$ ls -l
pa-ubuntu-11388$ touch filename.txt
pa-ubuntu-11388$ ls -l
-rw-r--r-- 1 dshawley dev 0 May 31 15:17 filename.txt
pa-ubuntu-11388$ cp ./filename.txt ./FileName.txt
pa-ubuntu-11388$ ls -l
-rw-r--r-- 1 dshawley dev 0 May 31 15:17 FileName.txt
-rw-r--r-- 1 dshawley dev 0 May 31 15:17 filename.txt

그것은 나에게 잘 작동합니다.

답변4

우분투는 부분적으로 대소문자를 구분하지 않습니다. 항상 대소문자를 구분합니다. 두 개의 서로 다른 파일 filename.txt이며 Filename.txt동일한 디렉토리에 배치될 수 있습니다. 따라서 이 명령은 다음과 같습니다.

cp ./filename.txt ./FileName.txt

동일한 디렉토리에서는 문제 없이 작동합니다.

관련 정보