mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Wednesday, July 12, 2006

윈도우용 리눅스 환경] Cygwin에서, 파일의 대소문자 구분은?


원래 유닉스/리눅스는, 파일명의 대소문자을 엄격히 구분합니다.

test.txt 와
Test.txt 와
TEST.txt 와
TEST.TXT 와
tEST.Txt 는
서로 전혀 다른 별개의 파일명이고, 이런 파일들이 한 디렉토리에 동시에 존재할 수 있습니다.

그러나 윈도우 환경에서는 위의 파일명은 모두 같은 이름이고, 그래서 위의 파일은 이름이 같기에, 한 디렉토리(폴더)에 동시에 존재할 수가 없습니다.



그렇다면 Cygwin은?



Cygwin은 안타깝게도(!?) 윈도우의 방식을 따르더군요. 즉 Cygwin은 대소문자를 구분하지 않습니다

만약 대소문자를 구분한다면, Cygwin 안에서 윈도용 프로그램들이 오작동할 수 있기 때문이라고 합니다. 대소문자를 구분할 경우, 윈도 프로그램이 foo.dll 이라는 파일을 부르려고 하는데, 하드에 있는 실제 파일명은 FOO.dll 이라면, 그 파일을 눈앞에 두고도 찾지 못하게 될 것입니다.





리눅스 파일의 대소문자에 대한 추억(?)



기억이 흐릿하긴 하지만, 제가 예전에 리눅스를 설치한 후에, bash 셀에서, "cat re"을 입력한 후 Tab 키를 눌러, Readme.txt 라는 파일명을 "자동 완성"시키려고 했습니다. 그렇지만 아무리 해도 되지 않아서 좌절했습니다. 나중에 왜 그런가 하고 생각해 보니 대문자 "R"이 아닌 소문자 "r"이어서 그랬습니다. (▶▶ "[리눅스/Cygwin 팁] bash: 파일명 자동완성, 대소문자 구분 없이 찾기 - Filename Completion" 참조)

대소문자를 구분하지 않는 MS윈도우 쪽이 더 합리적인 것 같기도 합니다. 왜냐하면 파일명에서 대소문자는 비본질적인 요소라고 여겨지기 때문입니다.


유닉스 계열에서는 왜 파일의 대소문자를 구분하는지에 대해 생각해 본 적이 있습니다:

우선 유닉스는 C로 이루어져 있고, C는 대소문자를 엄격히 구분하는 언어이기에--물론 베이직 빼고는 거의 모든 언어들이 대소문자를 철저히 구분함--파일명도 자연히 구분하게 되었을 것.

그리고 만약 문자열의 대소문자를 구분하지 않기 위해서는 그 문자열을 대문자나 소문자로 모두 바꾸어서 처리한다든지 하는 과정을 거쳐야 하는데, 이러면 처리 속도가 느려질 수도 있어서.

그리고 유닉스는 원래, 일반인이 아닌 전문가들만 사용하는 운영체제였기에, 사용자의 편의성 같은 것은 전혀 고려되지 않아서.

제한된 길이의 파일명 속에 더 많은 정보(여기서는 대소문자라는 정보)를 담기 위해서.

등의 이유가 떠올랐습니다.




tag: linux
리눅스 Linux | 유닉스 Unix | 시그윈 Cygwin

0 Comments:

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top