Próbuję skompresować folder (/var/www/
) do ~/www_backups/$time.tar
gdzie $time
to aktualna data.
Oto co mam:
cd /var/www && sudo tar -czf ~/www_backups $time"
Jestem kompletnie zagubiony i siedzę przy tym od wielu godzin. Nie mam pewności, czy -czf
jest poprawne. Chcę po prostu skopiować całą zawartość /var/www
do pliku $time.tar
i chcę zachować uprawnienia do wszystkich plików akta. Czy ktoś może mi pomóc?
Komentarze
Odpowiedz
Do tar
i gzip
folder, składnia to:
tar czf name_of_archive_file.tar.gz name_of_directory_to_tar
-
z czf
jest opcjonalne.
Jeśli chcesz tar
bieżący katalog, użyj .
, aby go wyznaczyć.
Aby dynamicznie tworzyć nazwy plików, użyj narzędzia date
(spójrz na jego stronę podręcznika dla dostępnych opcji formatu). Na przykład:
cd /var/www && tar czf ~/www_backups/$(date +%Y%m%d-%H%M%S).tar.gz .
Spowoduje to utworzenie pliku o nazwie podobnej do 20120902-185558.tar.gz
.
W systemie Linux prawdopodobnie tar
obsługuje również kompresję BZip2 z j
zamiast z
opcja. I prawdopodobnie inni. Sprawdź stronę podręcznika w systemie lokalnym.
Komentarze
- To jest idealne, dziękuję. Mam jednak jeden mały problem. Po utworzeniu pliku tar z / var / www, jest on umieszczany w katalogach / var / www w pliku tar. Tutaj ' jest kod i ' używam teraz
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 tar pliku, kiedy go rozpakuję, zostanie on umieszczony w katalogach / var / www. Czy to ma sens? Mam nadzieję, że tak, trochę trudne do wyjaśnienia. Sprawdzę obsługę BZip2, dzięki za sugestię! - To ' jest powodem, dla którego najpierw
cd
do katalog, który chcesz spakować, a następnietar cf file.tar .
– ten ostatni.
zamiast określać pełną ścieżkę, spowoduje, że ścieżki wewnątrz archiwum będą odpowiadać aktualny katalog. Możesz także użyć opcji-C
dla tar (spójrz na stronę podręcznika). - Tak, to działało znacznie lepiej. Wielkie dzięki, doceniam to!
- @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.
- W najnowszych wersjach tar wielkie litery
J
(zamiastz
) będą używać xz kompresja LZMA2.
Odpowiedź
Przykłady najpopularniejszych algorytmów kompresji
Pytanie brzmi po prostu " Skompresuj folder z tar? " Ponieważ ten tytuł jest bardzo ogólny, ale pytanie i odpowiedź są znacznie bardziej szczegółowe, a ze względu na bardzo dużą liczbę wyświetleń, które przyciągnęło to pytanie, czułem to byłoby korzystne dodanie aktualnej listy przykładów archiwizacji / kompresji i wyodrębniania / dekompresji z różnymi powszechnie używanymi algorytmami kompresji.
Zostały one przetestowane w Ubuntu 18.04.4. Są bardzo proste do ogólnego użytku, ale można je łatwo zintegrować z bardziej szczegółową treścią pytania PO, korzystając z technik opisanych w zaakceptowanej odpowiedzi i pomocnych komentarzach powyżej.
Jedna rzecz do uwagi dla bardziej ogólnych odbiorców jest taka, że tar
nie doda automatycznie niezbędnych rozszerzeń (takich jak .tar.gz
) – użytkownik musi je jawnie dodać, jak widać w polecenia poniżej:
# 1: tar (create uncompressed archive) all files and directories in the current working directory recursively into an uncompressed tarball tar cvf filename.tar * # 2: Untar (extract uncompressed archive) all files and directories in an uncompressed tarball recursively into the current working directory tar xvf filename.tar # 3: tar (create gzipped archive) all files and directories in the current working directory recursively into a tarball compressed with gzip tar cvzf filename.tar.gz * # 4: Untar (extract gzipped archive) all files and directories in a tarball compressed with gzip recursively into the current working directory tar xvf filename.tar.gz # Note: same options as 2 above # 5: tar (create bzip2"ed archive) all files and directories in the current working directory recursively into a tarball compressed with bzip2 tar cvjf filename.tar.bz2 * # Note: little "j" in options # 6: Untar (extract bzip2"ed archive) all files and directories in an tarball compressed with bzip2 recursively into the current working directory tar xvf filename.tar.bz2 # Note: same options as 2 and 4 above # 7: tar (create xz"ed archive) all files and directories in the current working directory recursively into a tarball compressed with xz tar cvJf filename.tar.xz * # Note: capital "J" in options # 8: Untar (extract xz"ed archive) all files and directories in an tarball compressed with xz recursively into the current working directory tar xvf filename.tar.xz # Note: same options as 2, 4, and 6 above
Zobacz stronę podręcznika systemu Tar (najlepiej użyć man tar
na konkretnym komputerze), aby uzyskać dalsze szczegóły. Poniżej podsumuję opcje użyte powyżej bezpośrednio ze strony podręcznika:
-c, –create
tworzy nowe archiwum-x, –extract, –get
wypakowuje pliki z archiwum-v, –verbose
dokładna lista przetworzonych plików-z, –gzip
filtruje archiwum przez gzip-j, –bzip2
filtruj archiwum przez bzip2-J, –xz
filtruj archiwum przez xz-f, –file = ARCHIWUM
użyj pliku archiwum lub ARCHIWUM urządzenia
Nie trzeba dodawać -
przed połączonymi opcjami ani znaku =
między opcją f
a nazwą pliku.
Wszystko to mam z mojego niedawnego artykułu , który zostanie rozszerzony do znacznie bardziej obszernego artykułu, ponieważ mam czas na pracę to.
$time
również.