Skompresować folder za pomocą tar?


268

Próbuję skompresować folder ( /var/www/) do miejsca, ~/www_backups/$time.targdzie $timejest bieżąca data.

Oto co mam:

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

Jestem całkowicie zagubiony i jestem w tym już od wielu godzin. Nie jestem pewien, czy -czfjest poprawny. Chcę po prostu skopiować całą zawartość /var/wwwdo $time.tarpliku i chcę zachować uprawnienia do wszystkich plików. Czy ktoś może mi pomóc?


trzeba też „po drugiej stronie $time.
gauteh

Odpowiedzi:


373

Do tari gzipfolderu, składnia jest:

tar czf name_of_archive_file.tar.gz name_of_directory_to_tar

-Jest opcjonalne. Jeśli chcesz przejść tardo bieżącego katalogu, użyj, .aby to wyznaczyć.

Aby skonstruować nazwę pliku, użyj datenarzędzia (sprawdź dostępne opcje formatu na jego stronie podręcznika). Na przykład:

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

Utworzyłoby to plik o nazwie coś takiego 20120902-185558.tar.gz.

W systemie Linux istnieje prawdopodobieństwo, że tarobsługuje również kompresję BZip2 z opcją jzamiast z. I ewentualnie inni. Sprawdź stronę manuala w systemie lokalnym.


1
To jest idealne, dziękuję. Mam jednak jeden drobny problem. Po utworzeniu pliku tar w katalogu / var / www jest on umieszczany w katalogach / var / www w pliku tar. Oto kod, którego teraz używam sudo tar -czf ~/www_backups/$time.tar /var/www/"Wyobraź sobie, że mam plik o nazwie test.txt wewnątrz / var / www. Po zrobieniu kopii pliku tar, po rozpakowaniu zostanie on umieszczony w katalogach / var / www. Czy to ma sens? Mam nadzieję, że tak, trudno to wyjaśnić. Sprawdzę obsługę BZip2, dzięki za sugestię!
qwerty

1
Dlatego najpierw przejdź cddo katalogu, który chcesz spakować, a następnie tar cf file.tar .- to ostatnie .zamiast określenia pełnej ścieżki spowoduje, że ścieżki wewnątrz archiwum będą względne względem bieżącego katalogu. Możesz także użyć -Copcji tar (spójrz na stronę podręcznika).
Mat

1
Tak, działało to znacznie lepiej. Wielkie dzięki, doceniam to!
qwerty

3
@Qwertylicious -f(ze strony podręcznika )Read the archive from or write the archive to the specified file.The filename can be - for standard input or standard output.
Kanion Kolob

1
sudobył w pytaniu, nie zmieniłem tego ani nie zakwestionowałem. Ograniczenie katalogu docelowego kopii zapasowej do katalogu głównego nie jest jednak złym pomysłem.
Mat
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.