18 tõrvakäskude näidet Linuxis


Linuxi "tar" tähistab lindiarhiivi, mida paljud Linux/Unixi süsteemiadministraatorid kasutavad lindiseadmete varundamisega tegelemiseks. Tõrvakäsk, mida kasutati failide ja kataloogide kogu rippimiseks väga tihendatud arhiivifailiks, mida Linuxis nimetatakse tavaliselt tarballiks või tar, gzip ja bzip. Tõrv on tihendatud arhiivifailide loomiseks kõige sagedamini kasutatav käsk, mida saab hõlpsasti ühelt kettalt teisele kettale või masinale masinasse teisaldada.

Selles artiklis vaatame läbi ja arutame erinevaid tõrvakäskude näiteid, sealhulgas arhiivifailide loomist (tar, tar.gz ja tar.bz2) tihendamise abil, arhiivifaili ekstraktimist, ühe faili ekstraktimist, sisu vaatamist faili, kontrollige faili, lisage arhiivifaili faile või katalooge, hinnake tõrvaarhiivifaili suurust jne.

Selle juhendi peamine eesmärk on pakkuda mitmesuguseid tõrvakäskude näiteid, mis võivad aidata teil tõrvaarhiivi manipuleerimisest aru saada ja eksperdiks saada.

Allpool toodud näide loob käimasolevas töökataloogis kataloogi/home/tecmint tar-arhiivifaili tecmint-14-09-12.tar Vaadake näite käsku tegevuses.

# 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

Arutleme iga tõrvaarhiivi faili loomiseks ülaltoodud käsus kasutatud variandi üle.

  1. c - loob uue .tar arhiivifaili.
  2. v - näitab .tar-faili edenemist paljusõnaliselt.
  3. f - arhiivifaili failinime tüüp.

Pakitud gzip-arhiivifaili loomiseks kasutame valikut kui z. Näiteks loob järgmine käsk tihendatud faili MyImages-14-09-12.tar.gz kataloogi/home/MyImages jaoks. (Märkus: tar.gz ja tgz on mõlemad sarnased).

# 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

Funktsioon bz2 tihendab ja loob arhiivifaili, mis on väiksem kui gzip. Bz2 tihendamine võtab failide tihendamiseks ja dekompressimiseks rohkem aega kui gzip, mis võtab vähem aega. Tihendatud tõrvafaili loomiseks kasutame valikut j. Järgmine näide loob kataloogi/home/php jaoks faili Phpfiles-org.tar.bz2. (Märkus: tar.bz2 ja tbz on sarnased tb2-ga).

# 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

Tõrvafaili tühistamiseks või väljavõtmiseks väljastage lihtsalt järgmine käsk, kasutades valikut x (ekstrakt). Näiteks tühistab järgmine käsk faili public_html-14-09-12.tar praeguses töökataloogis. Kui soovite teises kataloogis tühistada, kasutage valikut -C (määratud kataloog).

## 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

Tar.gz arhiivifaili lahti pakkimiseks käivitage lihtsalt järgmine käsk. Kui soovime erinevates kataloogides tühistada, kasutage lihtsalt valikut -C ja kataloogitee, nagu on näidatud ülaltoodud näites.

# 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

Tihendatud faili tar.bz2 tihendamiseks kasutage lihtsalt järgmist käsku. Allpool toodud näite käsk tühistab kõik .flv-failid arhiivifailist.

# 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

Tõrva arhiivifaili sisu loetlemiseks käivitage lihtsalt järgmine käsk suvandiga t (loendi sisu). Allpool olev käsk loetleb faili uploadprogress.tar sisu.

# 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

Kasutage faili tar.gz sisu loetlemiseks järgmist käsku.

# 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

Tar.bz2 faili sisu loetlemiseks väljastage järgmine käsk.

# 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

Ühe faili cleanfiles.sh eraldamiseks cleanfiles.sh.tar-st kasutage järgmist käsku.

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

cleanfiles.sh

Ühe faili tecmintbackup.xml eraldamiseks arhiivifailist tecmintbackup.tar.gz kasutage käsku järgmiselt.

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

tecmintbackup.xml

Üksiku faili nimega index.php eraldamiseks failist Phpfiles-org.tar.bz2 kasutage järgmist valikut.

# 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

Tar-, tar.gz- ja tar.bz2-arhiivifailidest mitme faili eraldamiseks või tühistamiseks. Näiteks ekstraktib järgmine käsk arhiivifailidest faili 1 faili fail 2 faili.

# 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"

Failirühma ekstraktimiseks kasutame metamärgipõhist ekstraktimist. Näiteks tõmba tar-, tar.gz- ja tar.bz2-arhiivifailist rühm kõigist failidest, mille muster algab tähega .php.

# 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

Failide või kataloogide lisamiseks olemasolevatele tõrvaarhiivifailidele kasutame valikut r (lisa). Näiteks lisame olemasolevale arhiivifailile tecmint-14-09-12.tar faili xyz.txt ja kataloogi php.

# 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

Tõrva käsul pole võimalust lisada faile või katalooge olemasolevale tihendatud tar.gz ja tar.bz2 arhiivifailile. Kui proovime, saate järgmise tõrke.

# 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

Tõrva või tihendatud arhiveeritud faili kontrollimiseks kasutame valikut W (kinnita). Selleks kasutage lihtsalt järgmisi käskude näiteid. (Märkus: tihendatud (* .tar.gz, * .tar.bz2) arhiivifailis ei saa kontrolli teha).

# 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/

Tõrva, tar.gz ja tar.bz2 arhiivifailide suuruse kontrollimiseks kasutage järgmist käsku. Näiteks kuvab järgmine käsk arhiivifaili suuruse kilobaitides (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

  1. c - looge arhiivifail.
  2. x - eraldage arhiivifail.
  3. v - arhiivifaili edenemise kuvamine.
  4. f - arhiivifaili failinimi.
  5. t - arhiivifaili sisu vaatamine.
  6. j - filtreeri arhiiv bzip2 kaudu.
  7. z - filtreeri arhiiv gzipi kaudu.
  8. r - lisage või värskendage faile või katalooge olemasolevatele arhiivifailidele.
  9. W - kontrollige arhiivifaili.
  10. metamärgid - määrake mustrid käsus UNIX tar.

See on praegu kõik, loodan, et ülaltoodud tõrva käskude näited on teie õppimiseks piisavad ja lisateabe saamiseks kasutage käsku man tar.

Kui soovite jagada suurt tõrvaarhiivi faili mitmeks osaks või plokiks, vaadake lihtsalt seda artiklit:

Kui meil on mõni näide vahele jäänud, jagage meiega kommentaarikasti ja ärge unustage seda artiklit oma sõpradega jagada. See on parim viis tänada ...