Încerc să comprim un folder (/var/www/
) la ~/www_backups/$time.tar
unde $time
este data curentă.
Iată ce am:
cd /var/www && sudo tar -czf ~/www_backups $time"
Sunt complet pierdut și am fost la asta de ore întregi. Nu sunt sigur dacă -czf
este corect. Vreau pur și simplu să copiez tot conținutul din /var/www
într-un fișier $time.tar
și vreau să mențin permisiunile pentru toate fișierele fișiere. Ma poate ajuta cineva?
Comentarii
Răspuns
To și gzip
un folder, sintaxa este:
tar czf name_of_archive_file.tar.gz name_of_directory_to_tar
cu czf
este opțional.
Dacă doriți să tar
directorul curent, utilizați .
pentru a desemna acest lucru.
Pentru a construi nume de fișiere dinamic, utilizați utilitarul date
(uitați-vă la pagina sa de manual pentru opțiunile de format disponibile). De exemplu:
cd /var/www && tar czf ~/www_backups/$(date +%Y%m%d-%H%M%S).tar.gz .
Aceasta va crea un fișier numit ceva de genul 20120902-185558.tar.gz
.
Pe Linux, este posibil ca tar
să accepte, de asemenea, compresia BZip2 cu j
și nu z
opțiune. Și posibil și altele. Verificați pagina manuală a sistemului dvs. local.
Comentarii
- Este perfect, vă mulțumesc. Totuși, am o mică problemă. După crearea unui fișier tar de / var / www, acesta este plasat în directorul / var / www din fișierul tar. Aici ' s codul i ' m folosind acum
sudo tar -czf ~/www_backups/$time.tar /var/www/"
Imaginați-vă că am un fișier numit test.txt în / var / www. După ce ați făcut o copie tar a fișierului, când îl extrag, acesta va fi plasat în directoarele / var / www. Are sens? Sper că da, cam greu de explicat. Voi verifica dacă există asistență pentru BZip2, mulțumesc pentru sugestie! directorul pe care doriți să îl împachetați, apoitar cf file.tar .
– ultimul.
în loc să specificați calea completă va face căile din interiorul arhivei relativ la directorul curent. De asemenea, puteți utiliza opțiunea-C
pentru tar (uitați-vă la pagina manuală). - Da, a funcționat mult mai bine. Mulțumesc o grămadă, apreciați-l!
- @Qwertylicious
-f
(din pagina de manual)Read the archive from or write the archive to the specified file.The filename can be - for standard input or standard output.
- Cu versiunile recente de tar, majusculele
J
(în loc dez
) vor folosi xz compresie LZMA2.
Răspuns
Exemple pentru cele mai frecvente algoritmi de compresie
Titlul întrebării pentru aceasta este pur și simplu " Comprimă o folder cu tar? " Deoarece acest titlu este foarte general, însă întrebarea și răspunsul sunt mult mai specifice și, datorită numărului foarte mare de vizualizări pe care le-a atras această întrebare, am simțit-o ar fi benefic să adăugați o listă actualizată de exemple atât de arhivare / comprimare, cât și extragere / decomprimare, cu diferiți algoritmi de compresie utilizați în mod obișnuit.
Acestea au fost testate cu Ubuntu 18.04.4. Acestea sunt foarte simple pentru uz general, dar ar putea fi ușor integrate în conținutul întrebărilor mai specifice ale OP folosind tehnicile din răspunsul acceptat și comentariile utile de mai sus.
Un lucru de remarcat pentru cele mai generale publicul este că tar
nu va adăuga automat extensiile necesare (cum ar fi .tar.gz
) automat – utilizatorul trebuie să le adauge în mod explicit, așa cum se vede în comenzi de mai jos:
# 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
Consultați pagina de manual tar (cel mai bine să utilizați man tar
pe mașina dvs. specifică) pentru detalii suplimentare. Mai jos rezum opțiunile utilizate mai sus direct din pagina de manual:
-c, –create
creați o nouă arhivă-x, –extract, –get
extrageți fișiere dintr-o arhivă-v, –verbose
listează verbos fișierele procesate-z, –gzip
filtrează arhiva prin gzip-j, –bzip2
filtrează arhiva prin bzip2-J, –xz
filtrează arhiva prin xz-f, –file = ARHIVĂ
folosește fișierul de arhivă sau dispozitiv ARHIVĂ
Nu este nevoie să adăugați -
în fața opțiunilor combinate sau semnul =
între opțiunea f
și numele fișierului.
Am obținut toate acestea din articolul meu recent , care va fi extins în continuare într-un articol mult mai cuprinzător, deoarece am timp să lucrez la it.
$time
de asemenea.