Ubuntu non limita le dimensioni di una directory, è imposta dal file system. Ogni file e directory è un cosiddetto inode. È possibile utilizzare df -i
per 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' touch
utilità:
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..600000
e 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 test
impiega molto più tempo, quindi usa rm
i 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.
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.