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
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 forz
) 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.
$time
også.