Comprimere una cartella con tar?


268

Sto cercando di comprimere una cartella ( /var/www/) ~/www_backups/$time.tardove si $timetrova la data corrente.

Questo è quello che ho:

cd /var/www && sudo tar -czf ~/www_backups $time"

Sono completamente perso e ci sono stato per ore ormai. Non sono sicuro che -czfsia corretto. Voglio semplicemente copiare tutto il contenuto /var/wwwin un $time.tarfile e voglio mantenere le autorizzazioni per tutti i file. Qualcuno mi può aiutare?


hai bisogno di un "anche dall'altra parte $time.
gauteh

Risposte:


373

Per tare gzipuna cartella, la sintassi è:

tar czf name_of_archive_file.tar.gz name_of_directory_to_tar

Il -è opzionale. Se si desidera tarla directory corrente, utilizzare .per designarlo.

Per costruire il tuo nome file, usa l' dateutility (guarda la sua pagina man per le opzioni di formato disponibili). Per esempio:

cd /var/www && sudo tar czf ~/www_backups/$(date +%Y%m%d-%H%M%S).tar.gz .

Ciò avrebbe creato un file chiamato qualcosa del genere 20120902-185558.tar.gz.

Su Linux, è probabile che tu tarsupporti anche la compressione BZip2 con l' opzione jpiuttosto che z. E forse altri. Controlla la pagina man sul tuo sistema locale.


1
Questo è perfetto, grazie. Ho un piccolo problema però. Dopo aver creato un file tar di / var / www, viene inserito nelle directory / var / www nel file tar. Ecco il codice che sto usando ora sudo tar -czf ~/www_backups/$time.tar /var/www/"Immagina di avere un file chiamato test.txt all'interno di / var / www. Dopo aver creato una copia tar del file, quando lo estraggo verrà inserito nelle directory / var / www. Ha senso? Spero di sì, un po 'difficile da spiegare. Controllerò il supporto di BZip2, grazie per il suggerimento!
qwerty,

1
Ecco perché prima vai cdalla directory che vuoi pacchetto, poi tar cf file.tar .- l'ultimo .invece di specificare il percorso completo renderà i percorsi all'interno dell'archivio relativi alla directory corrente. Puoi anche usare l' -Copzione per tar (guarda la pagina man).
Mat

1
Sì, ha funzionato molto meglio. Grazie mille, lo apprezzo!
qwerty,

3
@Qwertylicious -f(dalla pagina man)Read the archive from or write the archive to the specified file.The filename can be - for standard input or standard output.
Kolob Canyon,

1
sudoera nella domanda, non è cambiato o non è stato quello. Tuttavia, avere la directory di destinazione del backup limitata a root non è una cattiva idea.
Mat
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.