Ho un lavoro in esecuzione sul mio server alla riga di comando per due giorni:modo più efficiente per trovare & tar milioni di file
find data/ -name filepattern-*2009* -exec tar uf 2009.tar {} ;
sta prendendo sempre, e poi qualche. Sì, ci sono milioni di file nella directory di destinazione. (Ogni file è un misero 8 byte in una struttura di directory ben hash). Ma solo in esecuzione ...
find data/ -name filepattern-*2009* -print > filesOfInterest.txt
... richiede solo due ore o giù di lì. Al ritmo del mio lavoro, non sarà finito per un paio di settimane .. Sembra irragionevole. C'è un modo più efficiente per farlo? Forse con uno script bash più complicato?
Una domanda secondaria è "perché il mio approccio attuale è così lento?"
Il parametro exec genera un nuovo processo di catrame per ogni file trovato. Inoltre l'operazione di aggiornamento del tar è costosa. – theomega
quanti file hai e quanto sono grandi? L'impatto del richiamo di tar per ciascuno dei file fa una grande differenza per 10 file di petabyte o 10 miliardi di piccoli file – sfussenegger
@sfussenegger: 8 byte ciascuno ... hanno una domanda aggiornata. Come affermato in q, ci sono * milioni * di file. –