2010-08-17 8 views
5

Ho una cartella contenente file .tcb e .tch. Devo sapere qual è la dimensione di tutti i file .tcb, rispettivamente di tutti i file .tch. ho fatto in questo modo:Calcolare il consumo totale di spazio di file specifici nel terminale unix

1) Ho creato una cartella temporanea e poi:

mv *tch temp 

2) e poi:

du -sk temp 

ho trovato il comando in Internet e Wikipedia dice questo : "du (abbreviato dall'uso del disco) è un programma Unix standard utilizzato per stimare l'utilizzo dello spazio file". Penso che la ragione per cui dice che è una stima è che se ci sono collegamenti, verrà mostrata la dimensione del link al posto del file collegato.

Ma se faccio

ls -l 

nella cartella Temp (che contiene i tutti * .TCH) i file e poi riassumere le dimensioni che vengono visualizzati nel terminale, ho un altro dimensione del file. Perché è così?

Beh insomma, quello che mi serve è un comandoche mi mostra la vera file di dimensioni di * tutti i file .TCH in una cartella, che possono contenere anche altri tipi di file .

Spero che qualcuno possa aiutarmi con quello. Molte grazie!

risposta

10

È possibile utilizzare l'opzione -L-du se si vuole seguire i link simbolici (vale a dire, calcolare la dimensione della destinazione del collegamento, non di link stesso). È inoltre possibile utilizzare l'opzione -c per visualizzare un totale complessivo alla fine.

Armati di queste opzioni, prova a du -skLc *.tch.

Per ulteriori dettagli su du, vedere this manpage.

+1

Si noti che questo potrebbe non fornire il risultato previsto se la cartella contiene un collegamento a un file .tch nella stessa directory. Quel file sarebbe stato contato due volte: una volta per il file "effettivo" e una volta per la versione collegata. – bta

+0

la cartella non contiene collegamenti quindi questa soluzione sembra fare ciò che voglio. grazie bta – mkn

1

Guarda la pagina man specifica per la tua versione di du in quanto variano notevolmente nel modo in cui contano.

"approssimativa" può essere perché:

  1. blocchi utilizzati o Bytes possono essere segnalati con i blocchi troppo affermando dimensioni dei file che non sono multipli esatti della dimensione del blocco, ma rappresenta in modo più accurato "spazio utilizzato che Non posso usare per altre cose "
  2. I file Unix possono avere" buchi "creati cercando una lunga strada e scrivendo. Il sistema operativo in realtà non alloca spazio per i fori saltati.
  3. I collegamenti simbolici possono o meno essere dereferenziati al file reale a cui si riferiscono.

Se si desidera solo il ByteCount usare wc -c *.tcb