Come posso usare il comando tar per raggruppare i file senza compressione?


60

Ho una cartella molto grande di oltre 120.000 file. e devo spostarli in un'altra posizione sulla mia stessa macchina (stessa partizione).

Vorrei usare il tarcomando per raggrupparli come una singola unità e poi mvfino alla posizione finale.

Quale comando devo eseguire da tartutti insieme e non comprimere nulla (ho bisogno del risultato più veloce).


1
Perché usare tar, e non solo mv (1) i file? Oppure usa cp (1) se non vuoi perdere gli originali?
vonbrand,

@vonbrand uno potrebbe voler risincronizzare sulla rete un singolo file continuo. molto più veloce rispetto alla risincronizzazione di file più piccoli di 120k. è la differenza tra la massima velocità costante ai massimi e ai minimi
mwm

Risposte:


85

tar non comprime per impostazione predefinita, ma non aggiungere un'opzione di compressione:

tar cvf myfolder.tar myfolder

Sono compresi Hennes' commento nella mia risposta dal momento che aggiunge informazioni utili:

TAR (archivio nastro) è originariamente un programma unix utilizzato per creare archivi su nastro. Poiché tutti i dispositivi sono trattati come file in unix, è facile non scrivere su un nastro ma su un file. Questo di solito viene fatto con il flag -f. Il comando tar cvf myfolder.tar myfolder significa tar, c reate, v erbose f ile nome_file_creare what_to_tar. Non c'è compressione in questo ovunque. Gli archivi di tar (come file) venivano spesso compressi utilizzando il programma compress e ottenevano l'estensione .Z (ad esempio file.tar.Z). In seguito questo è stato incluso in gtar con la bandiera z


Ciò aggiungerà ricorsivamente tutte le sottocartelle e i file nel tar?
sergserg

2
@Serg sì, lo sarà.
terdon

1
Grazie. Di solito cerco di rispondere sia in forma breve che lunga. Come in "sì / no, [non] funzionerà" per il breve, e una spiegazione del perché come risposta più lunga. Avere le basi del perché spesso aiuta in futuro.
Hennes,

@Serg poiché non sempre è un manuale o istruzioni così buoni da chiarire subito le cose leggendoli, a volte il modo migliore è andare avanti e provare comunque il comando, quindi vedrai cosa fa, e una volta che sai cosa fa o hai una buona idea, il manuale può confermarlo per te! è facile testare tar su un piccolo set di file. con esempi su come usarlo, senza dover fare la testa o la coda del manuale.
barlop

Si noti che se si desiderano i risultati più veloci, è necessario omettere il flag "v" per silenziare l'output. Nel mio caso questo tempo di comando ridotto da 16 secondi a 6 secondi durante l'esecuzione su un'istanza AWS t2.medium.
David Backeus,

6

La risposta di @terdon è corretta.

Ma ho fatto un piccolo errore tar cvf myfolder.tar.gz myfolder. Volevo gli stessi nomi finali per i file nello stesso percorso tar.gzanche quando non sono compressi.

Quindi, se metti qualcosa come .gz, .zalla fine del nome del file che stai cercando di tar, l'app tar capirà che vuoi usare un po 'di compressione e si applicherà di conseguenza a ciò che hai inserito (gz = gzip).

Quindi, se si desidera utilizzare un'estensione del genere tar.gz, assicurarsi di utilizzare la bandiera--no-auto-compress

--no-auto-compress    do not use archive suffix to determine the compression 
program
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.