Quantos arquivos posso ter em um único diretório?

21

Esta questão está relacionada a esta .

Trabalho com animação, que gera muitos arquivos (+/- 1.000.000) normalmente armazenados em um único diretório. No Mac Os X, alguns bugs apareceram com mais de +/- 30.000 arquivos, então eu costumava dividir a animação em vários diretórios.

No Ubuntu, existe um limite para o número de arquivos que um único diretório pode conter?

H_7
fonte

Respostas:

32

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 -ipara verificar o número de inodes em uso e disponíveis para todos os sistemas de arquivos montados.

Acabei de criar um milhão e um arquivos sem problemas, porque meu limite de inode para minha partição ext4 de 50 GB (46 GiB) é grande o suficiente.

Usei a expansão do shell para criar os arquivos, combinada com o touchutilitário:

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

Isso cria 1000001 arquivos que podem ser verificados com ls | wc -l. Por que 300000..600000e não 300001..600000? Porque eu estava com preguiça de colocar esse 1 no final.

df -i parece:

/dev/sda6            3055616 1133635 1921981   38% /home

Agora remova os arquivos de teste ( cd ..&&rm -f testdemorou muito mais tempo, use rmcom 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 número tão grande de arquivos, é uma péssima idéia armazenar esses arquivos 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 quantidades tão grandes de arquivos.

Lekensteyn
fonte
1
ext4é um tipo de sistema de arquivos, não uma extensão de arquivo. Você não pode criar um diretório para edições na fila? Duvido que esses programas possam funcionar bem com quantidades tão grandes de arquivos.
Lekensteyn
1
Claro que eu posso. Só estou imaginando problemas antes de chegar a eles. Você está certo sobre o Adobe After Effects, certamente falhará, mas não duvide da equipe da Autodesk, eles criam pedaços de código incríveis ... =) parece usar uma Ferrari. Muito fácil de travar, muito rápido e poderoso porque está bloqueado no chão. Espero que meu inglês faça sentido.
H_7 21/10
1
Eu entendo. Yay, exatamente 17.000 reputação ^^
Lekensteyn
1
Antes de excluir os arquivos, tente abrir este diretório no Nautilus e veja o que acontece;).
Mario
1
@bzero Por favor, abra uma nova pergunta para isso.
precisa saber é o seguinte