O Ubuntu não limita o tamanho de um diretório, é imposto pelo sistema de arquivos. Cada arquivo e diretório é um chamado inode. Você pode usar df -i
para verificar o número de inodes em uso e disponível para todos os sistemas de arquivos montados.
Acabei de criar 1 milhão e um arquivo sem problemas porque meu limite de inode para minha partição home ext4 de 50 GB (46 GiB) é grande o suficiente.
Eu usei a expansão do shell para criar os arquivos, combinada com o utilitário touch
:
mkdir test
cd test
touch {0..300000}
touch {300000..600000}
touch {600000..900000}
touch {900000..1000000}
Isso cria arquivos 1000001 que podem ser verificados com ls | wc -l
. Por que 300000..600000
e não 300001..600000
? Porque eu estava com preguiça de colocar aquele 1 no final.
df -i
se parece com:
/dev/sda6 3055616 1133635 1921981 38% /home
Agora remova os arquivos de teste ( cd ..&&rm -f test
demorou muito mais tempo, então use rm
com os nomes dos arquivos):
rm {0..300000}
rm {300000..600000}
rm {600000..900000}
rm {900000..1000000}
cd ..
rmdir f
e o número de inodes em uso diminuiu imediatamente após a remoção dos arquivos:
/dev/sda6 3055616 133634 2921982 5% /home
Observe que, mesmo que o sistema de arquivos permita um grande número de arquivos, é uma idéia horrível armazenar arquivos tão grandes em um único diretório. Pelo menos use alguns subdiretórios com uma estrutura como f/i/l/e/filename.ext
. Os programas geralmente não esperam grandes quantidades de arquivos.