Komprimere en mappe med tjære?

Jeg prøver at komprimere en mappe (/var/www/) til ~/www_backups/$time.tar hvor $time er den aktuelle dato.

Dette er hvad jeg har:

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

Jeg er helt vild, og jeg har været ved det i timevis nu. Ikke sikker på, om -czf er korrekt. Jeg vil blot kopiere alt indholdet i /var/www til en $time.tar -fil, og jeg vil bevare filtilladelserne for alle filer. Kan nogen hjælpe mig?

Kommentarer

  • du har brug for en " på den anden side af $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 valgfri.

Hvis du vil tar nuværende bibliotek, brug . til at angive det.

For at konstruere filnavne dynamisk skal du bruge date -værktøjet (se på dens man-side for de tilgængelige formatindstillinger). For eksempel:

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

Dette vil oprette en fil med navnet 20120902-185558.tar.gz.

På Linux er chancerne for, at din tar også understøtter BZip2-komprimering med j i stedet for z mulighed. Og muligvis andre. Tjek mandsiden på dit lokale system.

Kommentarer

  • Dette er perfekt, tak. Jeg har dog et lille problem. Efter oprettelse af en tar-fil på / var / www placeres den i / var / www-mapper i tar-filen. Her er ' koden i ' m ved hjælp af sudo tar -czf ~/www_backups/$time.tar /var/www/" Forestil dig, at jeg har en fil kaldet test.txt inde / var / www. Efter at have lavet en tjærkopi af filen, når jeg udpakker den, placeres den i / var / www-mapper. Giver det mening? Jeg håber det gør, lidt svært at forklare. Jeg vil tjekke for BZip2 support, tak for forslaget!
  • At ' hvorfor du først cd til katalog, du vil pakke, så tar cf file.tar . – den sidste . i stedet for at angive den fulde sti vil gøre stierne inde i arkivet i forhold til aktuelle bibliotek. Du kan også bruge -C til tjære (se på mandsiden).
  • Yup, det fungerede meget bedre. Tak en flok, værdsat det!
  • @Qwertylicious -f (fra mandesiden) Read the archive from or write the archive to the specified file.The filename can be - for standard input or standard output.
  • Med nyere versioner af tjære vil store bogstaver J (i stedet for z) bruge xz LZMA2-komprimering.

Svar

Eksempler på mest almindelige kompressionsalgoritmer

Spørgsmålets titel til dette er simpelthen " Komprimer en mappe med tar? " Da denne titel er meget generel, men spørgsmålet og svaret er meget mere specifikt, og på grund af det meget store antal synspunkter, dette spørgsmål har tiltrukket, følte jeg det ville være fordelagtigt at tilføje en opdateret liste med eksempler på både arkivering / komprimering og udpakning / komprimering med forskellige almindeligt anvendte komprimeringsalgoritmer.

Disse er blevet testet med Ubuntu 18.04.4. De er meget enkle til generel brug, men kan let integreres i OPs mere specifikke spørgsmålsindhold ved hjælp af teknikkerne i det accepterede svar og nyttige kommentarer ovenfor.

En ting at bemærke for de mere generelle målgruppe er, at tar ikke automatisk tilføjer de nødvendige udvidelser (som .tar.gz) – brugeren skal eksplicit tilføje dem, som det ses i 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 (bedst at bruge man tar på din specifikke maskine) for yderligere detaljer. Nedenfor opsummerer jeg ovenstående muligheder direkte fra mandsiden:

-c, –oprett
opret et nyt arkiv

-x, –extract, – få
uddrag filer fra et arkiv

-v, –verbose
liste ordligt behandlede filer

-z, –gzip
filtrer arkivet gennem gzip

-j, –bzip2
filtrer arkivet gennem bzip2

-J, –xz
filtrer arkivet gennem xz

-f, –file = ARKIV
brug arkivfil eller enhed ARKIV

Ingen grund til at tilføje - foran de kombinerede indstillinger eller = -tegnet mellem indstillingen f og filnavnet.

Jeg fik alt dette fra min seneste artikel , som vil blive udvidet yderligere til en meget mere omfattende artikel, da jeg har tid til at arbejde på det.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *