¿Cuántos archivos puedo tener en un solo directorio?

21

Esta pregunta está relacionada con esta .

Trabajo con animación, que genera MUCHOS archivos (+/- 1,000,000) típicamente almacenados en un solo directorio. En Mac Os X, algunos errores aparecieron con más de +/- 30,000 archivos, así que solía dividir la animación en varios directorios.

En Ubuntu, ¿hay un límite para la cantidad de archivos que puede contener un solo directorio?

H_7
fuente

Respuestas:

32

Ubuntu no limita el tamaño de un directorio, es impuesto por el sistema de archivos. Cada archivo y directorio es un llamado inodo. Puede usar df -ipara verificar el número de inodos en uso y disponibles para todos los sistemas de archivos montados.

Acabo de crear 1 millón y uno de archivos sin problemas porque mi límite de inodo para mi partición doméstica ext4 de 50 GB (46 GiB) es lo suficientemente grande.

Utilicé la expansión de shell para crear los archivos, combinada con la touchutilidad:

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

Esto crea 1000001 archivos que se pueden verificar con ls | wc -l. ¿Por qué 300000..600000y no 300001..600000? Porque era demasiado vago para poner ese 1 al final.

df -i parece:

/dev/sda6            3055616 1133635 1921981   38% /home

Ahora elimine los archivos de prueba ( cd ..&&rm -f testtomó mucho más tiempo, así que úselos rmcon los nombres de archivo):

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

y la cantidad de inodos en uso disminuyó inmediatamente después de eliminar los archivos:

/dev/sda6            3055616  133634 2921982    5% /home

Tenga en cuenta que incluso si el sistema de archivos permite una cantidad tan grande de archivos, es una idea horrible almacenar archivos tan grandes en un solo directorio. Al menos use algunos subdirectorios con una estructura como f/i/l/e/filename.ext. Los programas a menudo no esperan cantidades tan grandes de archivos.

Lekensteyn
fuente
1
ext4es un tipo de sistema de archivos, no una extensión de archivo. ¿No puedes crear un directorio para las ediciones en cola? Dudo que esos programas puedan ejecutarse bien con cantidades de archivo tan grandes.
Lekensteyn
1
Seguro que puedo. Solo estoy imaginando problemas antes de llegar a ellos. Tienes razón acerca de Adobe After Effects, sin duda se bloqueará, pero no dudes de los chicos de Autodesk, hacen increíbles piezas de código ... =) parece usar un Ferrari. Muy fácil de bloquear, muy rápido y potente porque está bloqueado en el suelo. Espero que mi inglés tenga sentido.
H_7
1
Yo lo entiendo. Yay, exactamente 17,000 reputación ^^
Lekensteyn
1
Antes de eliminar los archivos, intente abrir este directorio en Nautilus y vea qué sucede;).
Mario
1
@bzero Abra una nueva pregunta para eso.
Lekensteyn