Quanti file posso avere su una singola directory?


21

Questa domanda è collegata a questa .

Lavoro con l'animazione, che genera MOLTI file (+/- 1.000.000) in genere memorizzati in una singola directory. Su Mac Os X, alcuni bug hanno prodotto più di +/- 30.000 file, quindi ho usato per suddividere l'animazione in varie directory.

Su Ubuntu, esiste un limite per il numero di file che può contenere una singola directory?

Risposte:


32

Ubuntu non limita le dimensioni di una directory, è imposta dal file system. Ogni file e directory è un cosiddetto inode. È possibile utilizzare df -iper verificare il numero di inode in uso e disponibili per tutti i filesystem montati.

Ho appena creato 1 milione e 1 file senza problemi perché il mio limite di inode per la mia partizione home ext4 di 50 GB (46 GiB) è abbastanza grande.

Ho usato l'espansione della shell per creare i file, in combinazione con l' touchutilità:

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

Questo crea 1000001 file che possono essere verificati con ls | wc -l. Perché 300000..600000e no 300001..600000? Perché ero troppo pigro per metterlo alla fine.

df -i sembra:

/dev/sda6            3055616 1133635 1921981   38% /home

Ora rimuovi i file di test ( cd ..&&rm -f testimpiega molto più tempo, quindi usa rmi nomi dei file):

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

e il numero di inode in uso è diminuito immediatamente dopo la rimozione dei file:

/dev/sda6            3055616  133634 2921982    5% /home

Si noti che anche se il filesystem consente un numero così elevato di file, è una pessima idea archiviare file così grandi in una singola directory. Almeno usa alcune sottodirectory con una struttura simile f/i/l/e/filename.ext. I programmi spesso non prevedono grandi quantità di file.


1
ext4è un tipo di filesystem, non un'estensione di file. Non riesci a creare una directory per accodare le modifiche? Dubito che quei programmi possano funzionare bene con quantità di file così grandi.
Lekensteyn,

1
Certo che posso. Sto solo immaginando i problemi prima di arrivare a loro. Hai ragione su Adobe After Effects, sicuramente andrò in crash, ma non dubitare dei ragazzi di Autodesk, fanno pezzi di codice incredibili ... =) sembra che usare una Ferrari. Molto facile da schiantare, molto veloce e potente perché bloccato a terra. Spero che il mio inglese abbia un senso.
H_7,

1
Lo capisco. Sì, esattamente 17.000 reputazione ^^
Lekensteyn,

1
Prima di eliminare i file, prova ad aprire questa directory in Nautilus e guarda cosa succede;).
Mario,

1
@bzero Per favore, apri una nuova domanda per questo.
Lekensteyn,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.