Domanda:
Quanti file in una cartella sono troppi?
Basil Bourque
2013-12-14 11:01:09 UTC
view on stackexchange narkive permalink

Molti anni fa ricordo vagamente che il Finder in Mac OS X avrebbe iniziato ad avere problemi se una cartella conteneva 2.000 - 3.000 elementi o più.

Apple doc dice che Il file system HFS Plus ha un limite teorico di 2 miliardi di file per cartella in tutte le versioni di Mac OS X.

Qual è il limite pratico?

Avere 10.000 foto in una cartella sono un problema?

In 10.6 che uso ancora al lavoro. il problema 2000-3000 esiste ancora. Non ho avuto l'opportunità di utilizzare questo tipo di file nelle versioni successive. Ma sospetto che se i documenti dicono ancora la stessa cosa, lo stesso limite potrebbe essere un problema. Devo aggiungere che non ho mai e poi mai avuto il problema del 2000-3000 sull'unità locale. Ma solo su un'unità di rete.
Non so esattamente dove sia disegnato il limite, ma milioni di file ti metteranno sicuramente in un grosso problema (buona fortuna a cancellare una cartella del genere anche con `rm -rf`).
Almeno nelle prime versioni di macOS X 10.6 si verificavano problemi di prestazioni quando si inseriva una quantità "grande", da 2k a 3k, di file nella cartella del desktop.Ha qualcosa a che fare con il disegno di tutte le icone sul desktop.Non ho sentito parlare di un problema con altre cartelle.
Lo metterò in attesa.Se vogliamo più risposte, vorremmo spiegare quale tipo di tempistica / requisito rende "pratica" un'attesa: la risposta sulla creazione di 10.000 file mostra che sulla maggior parte dei sistemi, esauriremo la pazienza di guardare i file nel Finder primail sistema rallenta o non può gestire i file.
@bmike Sono d'accordo con te tranne per il fatto che il nuovo [* Apple File System (APFS) *] (https://en.m.wikipedia.org/wiki/Apple_File_System) che sostituisce HFS + dà una nuova svolta a questo argomento.Forse dovrei pubblicare una nuova domanda su APFS specificamente se non ancora esistente?
Sì @BasilBourque - potremmo usare una nuova domanda molto specifica - magari collegandoci qui per spiegare dove cataloghiamo le limitazioni di HFS +.Mi assicurerei di dichiarare esplicitamente quali sono i tuoi limiti.Attendere 60 secondi per il rendering di una visualizzazione specifica del Finder, causando il 10% di utilizzo della CPU durante l'ordinamento per nome o qualsiasi cosa tu ritenga "pratica" o "limitante"
Cinque risposte:
#1
+7
nohillside
2013-12-14 18:13:17 UTC
view on stackexchange narkive permalink

Puoi facilmente provare tu stesso eseguendo quanto segue nel Terminale

  mkdir ~ / tcd ~ / tdd if = / dev / random of = test bs = 1024 count = 16for i in { 1..10000}; fare il test cp test. $ i; fatto  

per creare una cartella contenente 10.000 file da 16 kB ciascuno (sostituire il 16 nella terza riga con un altro numero per file di dimensioni diverse).

Un ultimo avvertimento: * non * farlo all'interno della tua directory home a meno che tu non voglia aumentare la tua fama con il tuo amministratore di sistema locale.A seconda dello strumento di backup di sua scelta, potrebbe non gradire gli effetti del suo strumento che cerca di archiviare il tuo prezioso esperimento.Esperimenti come questi sono meglio limitati ai supporti che non fanno parte di un piano di backup."/ tmp" sarebbe una scelta migliore di "~ /".
@TatjanaHeuser Non sono sicuro da dove provenga il tuo interesse per questo argomento, ma su macOS un utente in genere * è * l'amministratore locale (anche se potrebbe non esserne consapevole) e `/ tmp` è un collegamento simbolico a` / private / tmp`che per impostazione predefinita risiede nella partizione principale (unica).
Vero per i Mac desktop e non cambia il problema del backup.Anche su MacOS, `/ tmp` viene cancellato tra i riavvii.(A differenza di `/ var / tmp`).# alt.follkore.computers a parte: ho conosciuto amministratori per maledire l'utente curioso che ha creato un piccolo file con un grande buco per provare `lseek` quando il numero di nastri per il loro backup andava ben oltre la capacità del file systembackup in corso ...
@TatjanaHeuser Sono tornato da viaggi fotografici e ho caricato centinaia di file RAW tra 30 e 40 GB ciascuno sul mio Mac.TimeMachine lo ha gestito senza problemi :-)
#2
+4
Rafael Santos
2017-06-12 01:30:37 UTC
view on stackexchange narkive permalink

Risposte considerando un esempio pratico: ora ho 326.000 file in una cartella, creati da un'applicazione che scarica bit da un server.I file sono file XML compressi e la mia applicazione estrae i dati XML da essi e li memorizza su un database locale.

L'applicazione viene eseguita dalla riga di comando.Tutto funziona senza problemi but rm * o ls * non funziona a causa dell'espansione del carattere jolly (messaggio di errore Elenco argomenti troppo lungo ).Poiché i file sono archiviati in una cartella temporanea, posso semplicemente rimuovere la cartella dopo aver elaborato i file.

Tuttavia, non ho provato ad aprire la cartella con Finder.Sospetto che potrebbe essere molto lento, se possibile.

Stesso caso d'uso qui: ho scaricato oltre 290.000 file in una directory da un sito che stavo archiviando ... e ho commesso l'errore di provare ad aprirlo nel Finder.Dopo averlo lasciato girare per circa 20 minuti, ho forzato il riavvio del Finder, quindi ho chiuso la cartella e ho fatto tutto il resto nel Terminale (un sacco di `find | xargs`!)
#3
+3
Jared Palmer
2017-02-23 07:09:57 UTC
view on stackexchange narkive permalink

Sembra che circa 10.000 siano al sicuro.Tuttavia, ho scoperto che se vai molto più in alto come 50.000 Finder non elencherà mai nemmeno i file nella directory quando provi a sfogliarlo.Sospetto che questo sia il motivo per cui molti software di recupero dati creeranno una nuova cartella ogni 10.000 file se intendi i file in RAW.

#4
+3
Tatjana Heuser
2019-06-17 22:58:38 UTC
view on stackexchange narkive permalink

Ci sono diversi limiti da considerare che sono stati toccati da alcuni commenti:

  • lunghezza dell'argomento ed espansione della shell: un semplice echo * verrà salvato se la lunghezza concatenata dei nomi dei file l'asterisco si espande fino a raggiungere quel limite. Se ti imbatti in questa trappola, spesso find sarà tuo amico. trova. -profondità 1-tipo f | exec echo {} \; sarebbe un sostituto funzionante dell'innocente echo * menzionato sopra, limitato all'elenco dei soli file. ( echo da sostituire con l'azione di tua scelta)

  • limiti per programma alla dimensione delle strutture dati interne utilizzate per contenere i contenuti delle directory (finder, tutti i tipi di strumenti che tentano di leggere gli elenchi di directory).

  • dimensione della cache di ricerca nella directory. Sebbene il filesystem possa essere in grado di contenere 2,1 miliardi di file all'interno della struttura su disco di una directory, non sarà piacevole lavorare con quel numero, e ti consigliamo di introdurne alcuni strategia di ordinamento dei file in sottodirectory se hai a che fare con strutture di quella dimensione. (Suggerimento: coloro che progettavano strutture di web caching dovevano occuparsene - vedi Maltzahn / Richardson, Reducing the Disk I / O of Web Proxy Server Caches, Usenix 1999.

Per accelerare l'accesso alle strutture del disco utilizzate di frequente, i file system utilizzano la cache (di memoria) e la dimensione di queste cache è limitata. È qui che inizia a colpire la penalità improvvisa per regia strutturata grande e non ottimale. A seconda della frequenza e dell'intensità dell'accesso a queste directory, la penalità può essere significativa.

L'articolo del 2015 di Tsai et al., Come ottenere più valore dalla cache della directory del file system sarebbe probabilmente una delle introduzioni più semplici all'argomento.

#5
+2
konqui
2013-12-14 12:58:14 UTC
view on stackexchange narkive permalink

Apple ha un documento di supporto relativo a questo:

Numero massimo di file (o file e cartelle) in una cartella (tutte le versioni di Mac OS X)

Fino a 2,1 miliardi (2)

Sì, in effetti, ho incluso tale collegamento e fatto nella mia domanda (2 ° paragrafo). Sto chiedendo dei limiti pratici * del mondo reale *.
Grazie per questo, mi sono fatto una bella risata.Prova ad avere 4 milioni di file in una singola cartella e fammi sapere come va (suggerimento: non puoi visualizzarlo, non puoi "ls", non puoi "trovare", non puoi eliminarlo e così via).


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...