Komprimera en mapp med tjära?

Jag försöker komprimera en mapp (/var/www/) till ~/www_backups/$time.tar där $time är det aktuella datumet.

Detta är vad jag har:

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

Jag är helt vilse och jag har gjort det i timmar nu. Inte säker på om -czf är korrekt. Jag vill helt enkelt kopiera allt innehåll i /var/www till en $time.tar -fil och jag vill behålla filbehörigheterna för alla filer. Kan någon hjälpa mig?

Kommentarer

  • du behöver en " på andra sidan $time också.

Svar

Till tar och gzip en mapp, syntaxen är:

tar czf name_of_archive_file.tar.gz name_of_directory_to_tar 

- med czf är valfritt.

Om du vill tar aktuell katalog, använd . för att beteckna det.

För att konstruera filnamn dynamiskt, använd date -verktyget (titta på dess mansida för tillgängliga formatalternativ). Till exempel:

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

Detta skapar en fil med namnet 20120902-185558.tar.gz.

På Linux är chansen att din tar också stöder BZip2-komprimering med j snarare än z alternativ. Och möjligen andra. Kontrollera mansidan på ditt lokala system.

Kommentarer

  • Det här är perfekt, tack. Jag har dock en liten fråga. Efter att du har skapat en tarfil på / var / www placeras den i / var / www-kataloger i tarfilen. Här ' är koden i ' m med nu sudo tar -czf ~/www_backups/$time.tar /var/www/" Tänk dig att jag har en fil som heter test.txt inuti / var / www. Efter att ha gjort en tjärkopia av filen kommer den att placeras i / var / www-kataloger när jag extraherar den. Låter det vettigt? Jag hoppas att det gör det, ganska svårt att förklara. Jag kommer att söka efter BZip2-stöd, tack för förslaget!
  • Att ' är anledningen till att du först cd till katalog du vill paketera, sedan tar cf file.tar . – den sista . istället för att ange hela sökvägen kommer banorna i arkivet att vara relativt till aktuell katalog. Du kan också använda alternativet -C för tjära (titta på mansidan).
  • Japp, det fungerade mycket bättre. Tack ett gäng, uppskattar det!
  • @Qwertylicious -f (från man-sidan) Read the archive from or write the archive to the specified file.The filename can be - for standard input or standard output.
  • Med de senaste versionerna av tar använder versalerna J (istället för z) xz LZMA2-komprimering.

Svar

Exempel på vanligaste kompressionsalgoritmer

Frågetiteln för detta är helt enkelt " Komprimera en mapp med tjära? " Eftersom den här titeln är mycket allmän, men frågan och svaret är mycket mer specifika, och på grund av det mycket stora antalet visningar som denna fråga har lockat kände jag det skulle vara bra att lägga till en uppdaterad lista med exempel på både arkivering / komprimering och extrahering / komprimering, med olika vanliga kompressionsalgoritmer.

Dessa har testats med Ubuntu 18.04.4. De är väldigt enkla för allmän användning, men kan lätt integreras i OP: s mer specifika frågorinnehåll med hjälp av teknikerna i det accepterade svaret och hjälpsamma kommentarer ovan.

En sak att notera för de mer allmänna målgrupp är att tar inte automatiskt kommer att lägga till de nödvändiga tilläggen (som .tar.gz) – användaren måste uttryckligen lägga till dem, vilket framgår av kommandon nedan:

# 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-sidan (bäst att använda man tar på din specifika maskin) för mer information. Nedan sammanfattar jag alternativen som används ovan direkt från mansidan:

-c, –create
skapa ett nytt arkiv

-x, –extract, – få
extrahera filer från ett arkiv

-v, –verbose
listade filer som behandlats

-z, –gzip
filtrera arkivet genom gzip

-j, –bzip2
filtrera arkivet genom bzip2

-J, –xz
filtrera arkivet genom xz

-f, –file = ARKIV
använd arkivfil eller enhet ARKIV

Du behöver inte lägga till - framför de kombinerade alternativen eller = mellan alternativet f och filnamnet.

Jag fick allt detta från min senaste artikel , som kommer att utökas ytterligare till en mycket mer omfattande artikel eftersom jag har tid att arbeta med det.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *