Qual é o número máximo de pastas permitido em uma pasta no Linux?

17

Usando Redhat, se isso faz diferença.

Existe um limite padrão? Isso pode ser mudado? Caso contrário, existem soluções alternativas para aumentar o número de pastas permitidas em um diretório?

chris
fonte

Respostas:

22

Depende do sistema de arquivos que sua distribuição usa. Se você usa uma distribuição de área de trabalho mais recente (por exemplo, Ubuntu 9.10, uma versão recente do Fedora), provavelmente usa o ext4. Se você usar algo mais antigo, provavelmente é o ext3.

Mateus
fonte
11

No ext2, 32.768 de acordo com a Wikipedia - http://en.wikipedia.org/wiki/Ext2fs#File_system_limits . Depende do sistema de arquivos que você usa.

Pekka suporta GoFundMonica
fonte
3
Sim. A contagem de pastas está anexada ao sistema de arquivos, não ao SO.
23610 Satanicpuppy
Looks como ext4 solavancos que limite a um 64k difícil, mas suporta até mais do que através de ajustes
basszero
4

Você pode considerar alternativas ao que quer que esteja tentando fazer. Mesmo se você permanecer abaixo do limite do sistema de arquivos (por exemplo, 32k para ext2), armazenar dezenas de milhares de arquivos em um único diretório pode ser complicado, para dizer o mínimo.

Uma possibilidade é que você esteja tentando usar o sistema de arquivos para algo mais adequado a um banco de dados. Considere armazenar seus dados em um PostgreSQL, MySQL ou mesmo em um banco de dados sqlite. Não há muitos sistemas de arquivos que lidam bem com um grande número de arquivos - mover ou fazer backup dos dados será lento.

Se você realmente precisar armazenar muitos arquivos, considere estruturas de diretório alternativas. Por exemplo, você pode separar seus arquivos em ordem alfabética, por exemplo:

a/aaron.dat
a/alex.dat
a/alan.dat
b/bill.dat
b/brian.dat

Essa abordagem pode ser escalada aumentando a profundidade da sua separação, por exemplo:

a/a/aaron.dat
a/l/alex.dat
a/l/alan.dat

Ou, se você estiver inserindo arquivos de log diários ou recebendo entregas diárias, poderá separá-los por data, por exemplo:

2009-10-04/logfile-01.txt
2009-10-05/logfile-01.txt
2009-10-05/logfile-02.txt

Nesse caso em particular, você provavelmente também desejaria agendar uma tarefa para empacotar logs antigos em tarballs compactados para reduzir a contagem de arquivos.

Ryan Bright
fonte
1

Os limites de pasta são os motivos pelos quais os sistemas corporativos que precisam lidar com um número arbitrário de arquivos são armazenados em um ou dois subdiretórios com base em um hash do nome do arquivo. Por exemplo, md5 () o nome do arquivo e use os quatro primeiros bytes como uma subpasta para armazenar o arquivo; para níveis adicionais, use os próximos 4 para uma subpasta adicional ou os próximos 4 depois disso etc. A maioria dos sistemas nunca excederia 2 níveis de profundidade.

MightyE
fonte