Comprimeer een map met tar?

Ik “m probeer een map (/var/www/) te comprimeren naar ~/www_backups/$time.tar waarbij $time de huidige datum is.

Dit is wat ik heb:

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

Ik ben helemaal verdwaald en ben hier nu al uren mee bezig. Ik weet niet zeker of -czf correct is. Ik wil gewoon alle inhoud in /var/www kopiëren naar een $time.tar -bestand, en ik wil de bestandsrechten behouden voor alle bestanden. Kan iemand me helpen?

Reacties

  • je hebt een " nodig aan de andere kant van $time ook.

Antwoord

Aan tar en gzip een map, de syntaxis is:

tar czf name_of_archive_file.tar.gz name_of_directory_to_tar 

De - met czf is optioneel.

Als je tar de huidige directory, gebruik . om dat aan te duiden.

Om bestandsnamen dynamisch te construeren, gebruikt u het date utility (kijk naar de man-pagina voor de beschikbare formaatopties). Bijvoorbeeld:

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

Hierdoor wordt een bestand gemaakt met de naam 20120902-185558.tar.gz.

Op Linux is de kans groot dat uw tar ook BZip2-compressie ondersteunt met de j in plaats van z optie. En mogelijk anderen. Controleer de man-pagina op uw lokale systeem.

Reacties

  • Dit is perfect, dank je. Ik heb echter een klein probleempje. Na het aanmaken van een tar-bestand van / var / www, wordt het in de / var / www-directorys in het tar-bestand geplaatst. Hier ' is de code i ' m gebruik nu sudo tar -czf ~/www_backups/$time.tar /var/www/" Stel je voor dat ik een bestand heb met de naam test.txt binnen / var / www. Nadat ik een tar-kopie van het bestand heb gemaakt, wordt het bij het uitpakken in de / var / www-mappen geplaatst. Slaat dat ergens op? Ik hoop dat het zo is, nogal moeilijk uit te leggen. Ik zal controleren op BZip2-ondersteuning, bedankt voor de suggestie!
  • Dat ' is waarom je eerst cd naar de map die u wilt verpakken, dan tar cf file.tar . – die laatste . in plaats van het volledige pad op te geven, zullen de paden in het archief relatief zijn ten opzichte van de huidige directory. Je zou ook de -C optie kunnen gebruiken voor tar (kijk naar de man-pagina).
  • Ja, dat werkte veel beter. Heel erg bedankt, waardeer het!
  • @Qwertylicious -f (van man-pagina) Read the archive from or write the archive to the specified file.The filename can be - for standard input or standard output.
  • Met recente versies van tar zal de hoofdletter J (in plaats van de z) de xz LZMA2-compressie.

Antwoord

Voorbeelden van meest voorkomende compressiealgoritmen

De vraagtitel hiervoor is eenvoudig " Comprimeer een folder with tar? " Aangezien deze titel erg algemeen is, maar de vraag en het antwoord veel specifieker zijn, en vanwege het zeer grote aantal views dat deze vraag heeft getrokken, voelde ik het zou nuttig zijn om een up-to-date lijst toe te voegen met voorbeelden van zowel archiveren / comprimeren als extraheren / decomprimeren, met verschillende veelgebruikte compressie-algoritmen.

Deze zijn getest met Ubuntu 18.04.4. Ze zijn heel eenvoudig voor algemeen gebruik, maar kunnen gemakkelijk worden geïntegreerd in de meer specifieke vraaginhoud van het OP met behulp van de technieken in het geaccepteerde antwoord en de nuttige opmerkingen hierboven.

Een ding om op te merken voor de meer algemene publiek is dat tar de benodigde extensies (zoals .tar.gz) niet automatisch zal toevoegen – de gebruiker moet deze expliciet toevoegen, zoals te zien is in de commandos hieronder:

# 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 

Zie de tar man-pagina (het beste om man tar op uw specifieke machine) voor meer details. Hieronder vat ik de hierboven gebruikte opties rechtstreeks vanaf de man-pagina samen:

-c, –create
maak een nieuw archief

-x, –extract, – haal
bestanden uit een archief

-v, –verbose
uitgebreide lijst van verwerkte bestanden

-z, –gzip
filter het archief via gzip

-j, –bzip2
filter het archief via bzip2

-J, –xz
filter het archief door xz

-f, –file = ARCHIEF
gebruik archiefbestand of apparaat ARCHIEF

Het is niet nodig om het - vóór de gecombineerde opties of het = -teken toe te voegen tussen de f optie en de bestandsnaam.

Ik heb dit alles uit mijn recente artikel , dat verder zal worden uitgebreid tot een veel uitgebreider artikel naarmate ik tijd heb om aan te werken het.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *