단일 디렉토리에 몇 개의 파일을 가질 수 있습니까?


21

이 질문은 이것과 관련 있습니다.

애니메이션을 사용하여 단일 디렉토리에 일반적으로 저장된 많은 파일 (+/- 1,000,000)을 생성합니다. Mac Os X에서는 일부 버그에 +/- 30,000 개 이상의 파일이 생겨서 애니메이션을 다양한 디렉토리로 나누었습니다.

우분투에서 단일 디렉토리가 보유 할 수있는 파일 수에 제한이 있습니까?

답변:


32

우분투는 디렉토리의 크기를 제한하지 않으며 파일 시스템에 의해 부과됩니다. 각 파일과 디렉토리는 소위 inode입니다. 사용 df -i중인 마운트 된 모든 파일 시스템에 사용 가능한 inode 수를 확인하는 데 사용할 수 있습니다 .

내 ext4 홈 파티션의 50GB (46GiB)에 대한 inode 제한이 충분히 크기 때문에 문제없이 백만 개의 파일 하나만 만들었습니다.

touch유틸리티 와 결합하여 파일을 만들기 위해 쉘 확장을 사용했습니다 .

mkdir test
cd test
touch {0..300000}
touch {300000..600000}
touch {600000..900000}
touch {900000..1000000}

로 확인할 수있는 1000001 파일이 생성됩니다 ls | wc -l. 왜 300000..600000그렇지 300001..600000않습니까? 나는 그 1을 끝에 놓기에는 너무 게으 르기 때문에.

df -i 다음과 같습니다

/dev/sda6            3055616 1133635 1921981   38% /home

이제 테스트 파일을 제거하십시오 (시간 cd ..&&rm -f test이 오래 rm걸리므로 파일 이름과 함께 사용 하십시오).

rm {0..300000}
rm {300000..600000}
rm {600000..900000}
rm {900000..1000000}
cd ..
rmdir f

파일을 제거한 직후에 사용중인 inode 수가 감소했습니다.

/dev/sda6            3055616  133634 2921982    5% /home

파일 시스템이 많은 수의 파일을 허용하더라도 이러한 큰 파일을 단일 디렉토리에 저장하는 것은 끔찍한 아이디어입니다. 적어도 같은 구조를 가진 일부 서브 디렉토리를 사용하십시오 f/i/l/e/filename.ext. 프로그램은 종종 그러한 대량의 파일을 기대하지 않습니다.


1
ext4파일 확장자가 아닌 파일 시스템 유형입니다. 편집 대기열을위한 디렉토리를 만들 수 없습니까? 이러한 프로그램이 많은 양의 파일로 훌륭하게 실행될 수 있는지 의심합니다.
Lekensteyn

1
물론 이죠 문제를 해결하기 전에 문제를 상상하고 있습니다. Adobe After Effects에 대해서는 옳습니다. '확실히 추락하지만 Autodesk 직원은 의심 할 여지없이 놀라운 코드 조각을 만듭니다 ... =) Ferrari를 사용하는 것처럼 보입니다. 바닥에 막혀 있기 때문에 매우 빠르고 쉽게 충돌 할 수 있습니다. 내 영어가 이해되기를 바랍니다.
H_7

1
이해 했어요. Yay, 정확히 17.000 평판 ^^
Lekensteyn

1
파일을 삭제하기 전에 노틸러스에서이 디렉토리를 열어보고 어떻게되는지보십시오.).
Mario

1
@bzero 새로운 질문을여십시오.
Lekensteyn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.