18 nyttige Tar-kommandoer for hver Linux-systemadministrator


Linux tar står for tape archive, som brukes av et stort antall Linux/Unix-systemadministratorer for å håndtere sikkerhetskopiering av båndstasjoner.

Tar-kommandoen brukes til å rippe en samling filer og kataloger til en svært komprimert arkivfil ofte kalt tarball eller tar, gzip og bzip i Linux.

Tar er den mest brukte kommandoen for å lage komprimerte arkivfiler og som enkelt kan flyttes fra en disk til en annen disk eller maskin til maskin.

I denne artikkelen skal vi gjennomgå og diskutere forskjellige tar-kommandoer, inkludert hvordan du oppretter arkivfiler ved å bruke (tar, tar.gz og tar.bz2) komprimering, hvordan pakke ut arkivfil, trekke ut en enkelt fil, se innhold av filen, verifiser en fil, legg til filer eller kataloger til den eksisterende arkivfilen, anslå størrelsen på tar-arkivfilen, etc.

[Du vil kanskje også like: 7-Zip – Komprimer og komprimer filer med høyt komprimeringsforhold ]

Hovedformålet med denne veiledningen er å gi forskjellige tar-kommandoer som kan være nyttige for deg å forstå og bli en ekspert på tar-arkivmanipulering.

Eksempelkommandoen nedenfor vil opprette en tar-arkivfil tecmint-14-09-12.tar for en katalog /home/tecmint i gjeldende arbeidskatalog. Se eksempelkommandoen i aksjon.

# tar -cvf tecmint-14-09-12.tar /home/tecmint/

/home/tecmint/
/home/tecmint/cleanfiles.sh
/home/tecmint/openvpn-2.1.4.tar.gz
/home/tecmint/tecmint-14-09-12.tar
/home/tecmint/phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm
/home/tecmint/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

La oss diskutere hvert alternativ som brukes i kommandoen ovenfor for å lage en tar-arkivfil.

  1. c – Oppretter en ny .tar-arkivfil.
  2. v – Vis detaljert fremdriften for .tar-filen.
  3. f – Filnavntype for arkivfilen.

For å lage en komprimert gzip-arkivfil bruker vi alternativet som z. For eksempel vil kommandoen nedenfor lage en komprimert MyImages-14-09-12.tar.gz-fil for katalogen /home/MyImages. (Merk: tar.gz og tgz er begge like).

# tar cvzf MyImages-14-09-12.tar.gz /home/MyImages
OR
# tar cvzf MyImages-14-09-12.tgz /home/MyImages

/home/MyImages/
/home/MyImages/Sara-Khan-and-model-Priyanka-Shah.jpg
/home/MyImages/RobertKristenviolent101201.jpg
/home/MyImages/Justintimerlake101125.jpg
/home/MyImages/Mileyphoto101203.jpg
/home/MyImages/JenniferRobert101130.jpg
/home/MyImages/katrinabarbiedoll231110.jpg
/home/MyImages/the-japanese-wife-press-conference.jpg
/home/MyImages/ReesewitherspoonCIA101202.jpg
/home/MyImages/yanaguptabaresf231110.jpg

bz2-funksjonen komprimerer og lager en arkivfil som er mindre enn størrelsen på gzip-filen. Bz2-komprimeringen tar mer tid å komprimere og dekomprimere filer enn gzip, som tar kortere tid.

For å lage en svært komprimert tar-fil bruker vi alternativet j. Følgende eksempelkommando vil lage en Phpfiles-org.tar.bz2-fil for en katalog /home/php. (Merk: tar.bz2 og tbz ligner på tb2).

# tar cvfj Phpfiles-org.tar.bz2 /home/php
OR
# tar cvfj Phpfiles-org.tar.tbz /home/php
OR 
# tar cvfj Phpfiles-org.tar.tb2 /home/php

/home/php/
/home/php/iframe_ew.php
/home/php/videos_all.php
/home/php/rss.php
/home/php/index.php
/home/php/vendor.php
/home/php/video_title.php
/home/php/report.php
/home/php/object.html
/home/php/video.php

For å fjerne eller pakke ut en tar-fil, utfør bare følgende kommando ved å bruke alternativet x (pakke ut). For eksempel vil kommandoen nedenfor fjerne tareringen av filen public_html-14-09-12.tar i den nåværende arbeidskatalogen.

Hvis du ønsker å avtar i en annen katalog, bruk alternativet som -C (spesifisert katalog).

## Untar files in Current Directory ##
# tar -xvf public_html-14-09-12.tar

## Untar files in specified Directory ##
# tar -xvf public_html-14-09-12.tar -C /home/public_html/videos/

/home/public_html/videos/
/home/public_html/videos/views.php
/home/public_html/videos/index.php
/home/public_html/videos/logout.php
/home/public_html/videos/all_categories.php
/home/public_html/videos/feeds.xml

For å komprimere tar.gz-arkivfilen, kjør bare følgende kommando. Hvis vi ønsker å avtar i forskjellige kataloger, bruk bare alternativ -C og katalogbanen, som vist i eksemplet ovenfor.

# tar -xvf thumbnails-14-09-12.tar.gz

/home/public_html/videos/thumbnails/
/home/public_html/videos/thumbnails/katdeepika231110.jpg
/home/public_html/videos/thumbnails/katrinabarbiedoll231110.jpg
/home/public_html/videos/thumbnails/onceuponatime101125.jpg
/home/public_html/videos/thumbnails/playbutton.png
/home/public_html/videos/thumbnails/ReesewitherspoonCIA101202.jpg
/home/public_html/videos/thumbnails/snagItNarration.jpg
/home/public_html/videos/thumbnails/Minissha-Lamba.jpg
/home/public_html/videos/thumbnails/Lindsaydance101201.jpg
/home/public_html/videos/thumbnails/Mileyphoto101203.jpg

For å komprimere den svært komprimerte tar.bz2-filen, bruk bare følgende kommando. Eksempelkommandoen nedenfor vil fjerne alle .flv-filene fra arkivfilen.

# tar -xvf videos-14-09-12.tar.bz2

/home/public_html/videos/flv/katrinabarbiedoll231110.flv
/home/public_html/videos/flv/BrookmuellerCIA101125.flv
/home/public_html/videos/flv/dollybackinbb4101125.flv
/home/public_html/videos/flv/JenniferRobert101130.flv
/home/public_html/videos/flv/JustinAwardmovie101125.flv
/home/public_html/videos/flv/Lakme-Fashion-Week.flv
/home/public_html/videos/flv/Mileyphoto101203.flv
/home/public_html/videos/flv/Minissha-Lamba.flv

For å liste innholdet i tar-arkivfilen, kjør bare følgende kommando med alternativ t (liste innhold). Kommandoen nedenfor vil vise innholdet i uploadprogress.tar-filen.

# tar -tvf uploadprogress.tar

-rw-r--r-- chregu/staff   2276 2011-08-15 18:51:10 package2.xml
-rw-r--r-- chregu/staff   7877 2011-08-15 18:51:10 uploadprogress/examples/index.php
-rw-r--r-- chregu/staff   1685 2011-08-15 18:51:10 uploadprogress/examples/server.php
-rw-r--r-- chregu/staff   1697 2011-08-15 18:51:10 uploadprogress/examples/info.php
-rw-r--r-- chregu/staff    367 2011-08-15 18:51:10 uploadprogress/config.m4
-rw-r--r-- chregu/staff    303 2011-08-15 18:51:10 uploadprogress/config.w32
-rw-r--r-- chregu/staff   3563 2011-08-15 18:51:10 uploadprogress/php_uploadprogress.h
-rw-r--r-- chregu/staff  15433 2011-08-15 18:51:10 uploadprogress/uploadprogress.c
-rw-r--r-- chregu/staff   1433 2011-08-15 18:51:10 package.xml

Bruk følgende kommando for å liste innholdet i tar.gz-filen.

# tar -tvf staging.linux-console.net.tar.gz

-rw-r--r-- root/root         0 2012-08-30 04:03:57 staging.linux-console.net-access_log
-rw-r--r-- root/root       587 2012-08-29 18:35:12 staging.linux-console.net-access_log.1
-rw-r--r-- root/root       156 2012-01-21 07:17:56 staging.linux-console.net-access_log.2
-rw-r--r-- root/root       156 2011-12-21 11:30:56 staging.linux-console.net-access_log.3
-rw-r--r-- root/root       156 2011-11-20 17:28:24 staging.linux-console.net-access_log.4
-rw-r--r-- root/root         0 2012-08-30 04:03:57 staging.linux-console.net-error_log
-rw-r--r-- root/root      3981 2012-08-29 18:35:12 staging.linux-console.net-error_log.1
-rw-r--r-- root/root       211 2012-01-21 07:17:56 staging.linux-console.net-error_log.2
-rw-r--r-- root/root       211 2011-12-21 11:30:56 staging.linux-console.net-error_log.3
-rw-r--r-- root/root       211 2011-11-20 17:28:24 staging.linux-console.net-error_log.4

For å liste innholdet i tar.bz2-filen, utfør følgende kommando.

# tar -tvf Phpfiles-org.tar.bz2

drwxr-xr-x root/root         0 2012-09-15 03:06:08 /home/php/
-rw-r--r-- root/root      1751 2012-09-15 03:06:08 /home/php/iframe_ew.php
-rw-r--r-- root/root     11220 2012-09-15 03:06:08 /home/php/videos_all.php
-rw-r--r-- root/root      2152 2012-09-15 03:06:08 /home/php/rss.php
-rw-r--r-- root/root      3021 2012-09-15 03:06:08 /home/php/index.php
-rw-r--r-- root/root      2554 2012-09-15 03:06:08 /home/php/vendor.php
-rw-r--r-- root/root       406 2012-09-15 03:06:08 /home/php/video_title.php
-rw-r--r-- root/root      4116 2012-09-15 03:06:08 /home/php/report.php
-rw-r--r-- root/root      1273 2012-09-15 03:06:08 /home/php/object.html

For å pakke ut en enkelt fil kalt cleanfiles.sh fra cleanfiles.sh.tar bruk følgende kommando.

# tar -xvf cleanfiles.sh.tar cleanfiles.sh
OR
# tar --extract --file=cleanfiles.sh.tar cleanfiles.sh

cleanfiles.sh

For å trekke ut en enkelt fil tecmintbackup.xml fra tecmintbackup.tar.gz-arkivfilen, bruk kommandoen som følger.

# tar -zxvf tecmintbackup.tar.gz tecmintbackup.xml
OR
# tar --extract --file=tecmintbackup.tar.gz tecmintbackup.xml

tecmintbackup.xml

For å trekke ut en enkelt fil kalt index.php fra filen Phpfiles-org.tar.bz2, bruk følgende alternativ.

# tar -jxvf Phpfiles-org.tar.bz2 home/php/index.php
OR
# tar --extract --file=Phpfiles-org.tar.bz2 /home/php/index.php

/home/php/index.php

For å pakke ut eller fjerne flere filer fra arkivfilen tar, tar.gz og tar.bz2. For eksempel vil kommandoen nedenfor trekke ut fil 1 fil 2 fra arkivfilene.

# tar -xvf tecmint-14-09-12.tar "file1" "file2" 

# tar -zxvf MyImages-14-09-12.tar.gz "file1" "file2" 

# tar -jxvf Phpfiles-org.tar.bz2 "file1" "file2"

For å pakke ut en gruppe filer bruker vi jokertegnbasert utpakking. For eksempel å trekke ut en gruppe av alle filer hvis mønster begynner med .php fra en tar-, tar.gz- og tar.bz2-arkivfil.

# tar -xvf Phpfiles-org.tar --wildcards '*.php'

# tar -zxvf Phpfiles-org.tar.gz --wildcards '*.php'

# tar -jxvf Phpfiles-org.tar.bz2 --wildcards '*.php'

/home/php/iframe_ew.php
/home/php/videos_all.php
/home/php/rss.php
/home/php/index.php
/home/php/vendor.php
/home/php/video_title.php
/home/php/report.php
/home/php/video.php

For å legge til filer eller kataloger til de eksisterende tar-arkivfilene bruker vi alternativet r (legg ved). For eksempel legger vi til filen xyz.txt og katalogen php til den eksisterende tecmint-14-09-12.tar arkivfilen.

# tar -rvf tecmint-14-09-12.tar xyz.txt

# tar -rvf tecmint-14-09-12.tar php

drwxr-xr-x root/root         0 2012-09-15 02:24:21 home/tecmint/
-rw-r--r-- root/root  15740615 2012-09-15 02:23:42 home/tecmint/cleanfiles.sh
-rw-r--r-- root/root    863726 2012-09-15 02:23:41 home/tecmint/openvpn-2.1.4.tar.gz
-rw-r--r-- root/root  21063680 2012-09-15 02:24:21 home/tecmint/tecmint-14-09-12.tar
-rw-r--r-- root/root   4437600 2012-09-15 02:23:41 home/tecmint/phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm
-rw-r--r-- root/root     12680 2012-09-15 02:23:41 home/tecmint/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
-rw-r--r-- root/root 0 2012-08-18 19:11:04 xyz.txt
drwxr-xr-x root/root 0 2012-09-15 03:06:08 php/ 
-rw-r--r-- root/root 1751 2012-09-15 03:06:08 php/iframe_ew.php 
-rw-r--r-- root/root 11220 2012-09-15 03:06:08 php/videos_all.php 
-rw-r--r-- root/root 2152 2012-09-15 03:06:08 php/rss.php 
-rw-r--r-- root/root 3021 2012-09-15 03:06:08 php/index.php 
-rw-r--r-- root/root 2554 2012-09-15 03:06:08 php/vendor.php 
-rw-r--r-- root/root 406 2012-09-15 03:06:08 php/video_title.php

Tar-kommandoen har ikke et alternativ for å legge til filer eller kataloger til en eksisterende komprimert tar.gz- og tar.bz2-arkivfil. Hvis vi prøver vil vi få følgende feil.

# tar -rvf MyImages-14-09-12.tar.gz xyz.txt

# tar -rvf Phpfiles-org.tar.bz2 xyz.txt

tar: This does not look like a tar archive
tar: Skipping to next header
xyz.txt
tar: Error exit delayed from previous errors

For å verifisere enhver tar eller komprimert arkivert fil bruker vi alternativet W (bekreft). For å gjøre dette, bruk bare følgende eksempler på kommandoer. (Merk: Du kan ikke utføre verifisering på en komprimert ( *.tar.gz, *.tar.bz2 ) arkivfil).

# tar tvfW tecmint-14-09-12.tar

tar: This does not look like a tar archive
tar: Skipping to next header
tar: Archive contains obsolescent base-64 headers
tar: VERIFY FAILURE: 30740 invalid headers detected
Verify -rw-r--r-- root/root    863726 2012-09-15 02:23:41 /home/tecmint/openvpn-2.1.4.tar.gz
Verify -rw-r--r-- root/root  21063680 2012-09-15 02:24:21 /home/tecmint/tecmint-14-09-12.tar
tar: /home/tecmint/tecmint-14-09-12.tar: Warning: Cannot stat: No such file or directory
Verify -rw-r--r-- root/root   4437600 2012-09-15 02:23:41 home/tecmint/phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm
tar: /home/tecmint/phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm: Warning: Cannot stat: No such file or directory
Verify -rw-r--r-- root/root     12680 2012-09-15 02:23:41 home/tecmint/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
tar: /home/tecmint/rpmforge-release-0.5.2-2.el5.rf.i386.rpm: Warning: Cannot stat: No such file or directory
Verify -rw-r--r-- root/root         0 2012-08-18 19:11:04 xyz.txt
Verify drwxr-xr-x root/root         0 2012-09-15 03:06:08 php/

For å sjekke størrelsen på en tar-, tar.gz- og tar.bz2-arkivfil, bruk følgende kommando. For eksempel vil kommandoen nedenfor vise størrelsen på arkivfilen i kilobyte (KB).

# tar -czf - tecmint-14-09-12.tar | wc -c
12820480

# tar -czf - MyImages-14-09-12.tar.gz | wc -c
112640

# tar -czf - Phpfiles-org.tar.bz2 | wc -c
20480

  • c – opprett en arkivfil.
  • x – pakk ut en arkivfil.
  • v – vis fremdriften til arkivfilen.
  • f – filnavnet på arkivfilen.
  • t – viser innholdet i arkivfilen.
  • j – filtrer arkiv gjennom bzip2.
  • z – filtrer arkiv gjennom gzip.
  • r – legg til eller oppdater filer eller kataloger til de eksisterende arkivfilene.
  • W – Bekreft en arkivfil.
  • jokertegn – Spesifiser mønstre i UNIX tar-kommandoen.

Det er det for nå, håper eksemplene ovenfor tar-kommando er nok for deg å lære, og for mer informasjon vennligst bruk man tar-kommandoen.

Hvis du ønsker å dele en stor tar-arkivfil i flere deler eller blokker, bare gå gjennom denne artikkelen:

  • Hvordan dele Tar-fil i flere filer av en viss størrelse
  • Hvordan laste ned og pakke ut Tar-filer med én kommando

Hvis vi har gått glipp av noen eksempler, del gjerne med oss via kommentarfeltet, og ikke glem å dele denne artikkelen med vennene dine. Dette er den beste måten å si takk på....