이런 종류의 문제는 쓰고 있는 파일 시스템에 따라 다른 것이지, 운영체제에 따라 달라지는 것이 아닙니다. (파일 시스템도 운영체제의 일부이긴 합니다만..) 즉, 쓰고 있는 파일 시스템이 ext3냐, reiserfs이냐, xfs이냐에 따라 다릅니다.
하지만, 대개의 파일 시스템은, 루트 디렉토리를 제외하고, 나머지 디렉토리에 들어갈 수 있는 파일의 갯수에 제한을 두지 않습니다. 하지만 (ext2처럼) 한 파일 시스템 자체에 들어갈 수 있는 전체 파일/디렉토리 갯수에 제한을 두는 경우는 있습니다.
또, 파일 시스템에 상관없이 생각해야 하는 것이 있는데, 바로 ARG_MAX의 크기입니다. 이 것은 운영체제에 따라 다릅니다 (예. Solaris는 10240, Linux는 0x20000). ARG_MAX는 프로그램이 시작할 때 환경 변수들의 내용과 프로그램에 전달된 인자들이 저장되는 공간의 최대 크기입니다. 따라서 한 디렉토리에 파일이 너무 많을 경우:
$ ls *.txt
ls: arg list too long
$ _
와 같이 에러가 발생할 수 있습니다. (물론 그렇다고 파일 저장이 실패한 것은 아닙니다. 이 경우에는 find . -exec {} 등을 써서 해결할 수 있습니다.) 하지만 한 디렉토리에 많은 파일을 저장하는 것은 좋지 않은 습관이기 때문에, 적당히 디렉토리 구조를 유지하는 것이 좋습니다.
좀 더 자세한 사항은 일반 운영체제 책 또는 특정 파일 시스템에 관한 문서를 보시는 것이 좋을 것 같습니다.
파일시스템에 따라서
파일시스템에 따라서 틀립니다.
커널 내부에서는 동적 자료구조를 사용하기 때문에 상관 없습니다.
이런 종류의 문제는
이런 종류의 문제는 쓰고 있는 파일 시스템에 따라 다른 것이지, 운영체제에 따라 달라지는 것이 아닙니다. (파일 시스템도 운영체제의 일부이긴 합니다만..) 즉, 쓰고 있는 파일 시스템이 ext3냐, reiserfs이냐, xfs이냐에 따라 다릅니다.
하지만, 대개의 파일 시스템은, 루트 디렉토리를 제외하고, 나머지 디렉토리에 들어갈 수 있는 파일의 갯수에 제한을 두지 않습니다. 하지만 (ext2처럼) 한 파일 시스템 자체에 들어갈 수 있는 전체 파일/디렉토리 갯수에 제한을 두는 경우는 있습니다.
또, 파일 시스템에 상관없이 생각해야 하는 것이 있는데, 바로 ARG_MAX의 크기입니다. 이 것은 운영체제에 따라 다릅니다 (예. Solaris는 10240, Linux는 0x20000). ARG_MAX는 프로그램이 시작할 때 환경 변수들의 내용과 프로그램에 전달된 인자들이 저장되는 공간의 최대 크기입니다. 따라서 한 디렉토리에 파일이 너무 많을 경우:
와 같이 에러가 발생할 수 있습니다. (물론 그렇다고 파일 저장이 실패한 것은 아닙니다. 이 경우에는 find . -exec {} 등을 써서 해결할 수 있습니다.) 하지만 한 디렉토리에 많은 파일을 저장하는 것은 좋지 않은 습관이기 때문에, 적당히 디렉토리 구조를 유지하는 것이 좋습니다.
좀 더 자세한 사항은 일반 운영체제 책 또는 특정 파일 시스템에 관한 문서를 보시는 것이 좋을 것 같습니다.
ext2에 대해서:
http://web.mit.edu/tytso/www/linux/ext2intro.html
http://www.nongnu.org/ext2-doc/ext2.html
http://www.tldp.org/LDP/tlk/fs/filesystem.html
http://www.linuxjournal.com/node/2151/
ARG_MAX에 대해서:
http://www.gnu.org/software/libc/manual/html_node/General-Limits.html#General-Limits
http://www.in-ulm.de/~mascheck/various/argmax/
--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
예전에 실험을
예전에 실험을 해봤었는데, FAT32는 32767 (2^31 - 1) 개까지 가능했던걸로 기억합니다.
Quote:예전에 실험을
하나 더 추가하자면 FAT32는 루트디렉토리는 512개의 디렉토리/파일만 들어갈 수 있습니다.
Win98 설치 프로그램에서도 이 512개 스펙 체크루틴이 있다죠 :P
댓글 달기