Komprimere en mappe med tjære? (Norsk)

Jeg prøver å komprimere en mappe (/var/www/) til ~/www_backups/$time.tar der $time er gjeldende dato.

Dette har jeg:

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

Jeg er helt fortapt, og jeg har holdt på i flere timer nå. Ikke sikker på om -czf er riktig. Jeg vil bare kopiere alt innholdet i /var/www til en $time.tar -fil, og jeg vil opprettholde filtillatelsene for alle filene filer. Kan noen hjelpe meg?

Kommentarer

  • du trenger en " på den andre siden av $time også.

Svar

Til tar og gzip en mappe, syntaksen er:

tar czf name_of_archive_file.tar.gz name_of_directory_to_tar 

- med czf er valgfritt.

Hvis du vil tar gjeldende katalog, bruk . for å betegne det.

For å konstruere filnavn dynamisk, bruk date verktøyet (se på sin manside for tilgjengelige formatalternativer). For eksempel:

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

Dette vil opprette en fil som heter noe som 20120902-185558.tar.gz.

På Linux er sjansen stor for at din tar også støtter BZip2-komprimering med j i stedet for z alternativ. Og muligens andre. Sjekk mansiden på det lokale systemet.

Kommentarer

  • Dette er perfekt, takk. Jeg har et lite problem skjønt. Etter å ha opprettet en tar-fil på / var / www, plasseres den i / var / www-kataloger i tar-filen. Her ' er koden i ' m bruker nå sudo tar -czf ~/www_backups/$time.tar /var/www/" Tenk deg at jeg har en fil som heter test.txt inni / var / www. Når jeg tar ut en tjærekopi av filen, blir den plassert i kataloger / var / www. Gir det mening? Jeg håper det gjør det, ganske vanskelig å forklare. Jeg vil se etter BZip2-støtte, takk for forslaget!
  • At ' er hvorfor du først cd til katalogen du vil pakke, så tar cf file.tar . – den siste . i stedet for å spesifisere hele banen, vil banene i arkivet være relativt til gjeldende katalog. Du kan også bruke alternativet -C for tjære (se på mannssiden).
  • Yup, det fungerte mye bedre. Takk en gjeng, setter pris på det!
  • @Qwertylicious -f (fra man-siden) Read the archive from or write the archive to the specified file.The filename can be - for standard input or standard output.
  • Med nylige versjoner av tar vil store bokstaver J (i stedet for z) bruke xz LZMA2-komprimering.

Svar

Eksempler på de vanligste komprimeringsalgoritmene

Spørsmålstittelen for dette er ganske enkelt " Komprimer en mappe med tar? " Siden denne tittelen er veldig generell, men spørsmålet og svaret er mye mer spesifikt, og på grunn av det svært store antallet visninger dette spørsmålet har tiltrukket, følte jeg det ville være gunstig å legge til en oppdatert liste over eksempler på både arkivering / komprimering og utpakking / komprimering, med forskjellige ofte brukte komprimeringsalgoritmer.

Disse er testet med Ubuntu 18.04.4. De er veldig enkle for generell bruk, men kan lett integreres i OPs mer spesifikke spørsmålsinnhold ved hjelp av teknikkene i det aksepterte svaret og nyttige kommentarer ovenfor.

En ting å merke seg for de mer generelle målgruppe er at tar ikke automatisk vil legge til de nødvendige utvidelsene (som .tar.gz) – brukeren må eksplisitt legge til de, som det fremgår av kommandoer nedenfor:

# 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 

Se tar man-siden (best å bruke man tar på din spesifikke maskin) for ytterligere detaljer. Nedenfor oppsummerer jeg alternativene som er brukt ovenfor direkte fra mannssiden:

-c, –opprett
opprett et nytt arkiv

-x, –extract, – få
pakke ut filer fra et arkiv

-v, –verbose
liste opp filer behandlet

-z, –gzip
filtrer arkivet gjennom gzip

-j, –bzip2
filtrer arkivet gjennom bzip2

-J, –xz
filtrer arkivet gjennom xz

-f, –file = ARKIV
bruk arkivfil eller enhetsARKIV

Ingen grunn til å legge til - foran de kombinerte alternativene, eller = mellom alternativet f og filnavnet.

Alt dette fikk jeg fra min nylige artikkel , som vil bli utvidet videre til en mye mer omfattende artikkel ettersom jeg har tid til å jobbe med det.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *