Mifano 18 Muhimu za Amri ya Tar kwa Kila Sysadmin ya Linux


Linux tar inasimama kwa kumbukumbu ya tepi, ambayo hutumiwa na idadi kubwa ya wasimamizi wa mfumo wa Linux/Unix ili kukabiliana na hifadhi ya anatoa tepi.

Amri ya tar hutumika kurarua mkusanyo wa faili na saraka hadi kwenye faili ya kumbukumbu iliyobanwa sana inayoitwa tarball au tar, gzip na bzip katika Linux.

Lami ndiyo amri inayotumika sana kuunda faili za kumbukumbu zilizobanwa na ambazo zinaweza kuhamishwa kwa urahisi kutoka kwa diski moja hadi diski nyingine au mashine hadi mashine.

Katika makala haya, tutakuwa tukikagua na kujadili mifano mbalimbali ya amri ya tar ikiwa ni pamoja na jinsi ya kuunda faili za kumbukumbu kwa kutumia (tar, tar.gz, na tar.bz2) compression, jinsi ya kutoa faili ya kumbukumbu, kutoa faili moja, kutazama maudhui. ya faili, thibitisha faili, ongeza faili au saraka kwenye faili iliyopo ya kumbukumbu, kadiria saizi ya faili ya kumbukumbu ya tar, nk.

[ Unaweza pia kupenda: 7-Zip – Finyaza na Usifinyize Faili zenye Uwiano wa Juu wa Mfinyazo ]

Madhumuni kuu ya mwongozo huu ni kutoa mifano mbalimbali ya amri ya tar ambayo inaweza kukusaidia kuelewa na kuwa mtaalam wa upotoshaji wa kumbukumbu ya tar.

Amri ya mfano iliyo hapa chini itaunda faili ya kumbukumbu ya tar tecmint-14-09-12.tar kwa saraka /home/tecmint katika saraka ya sasa ya kufanya kazi. Tazama amri ya mfano katika vitendo.

# 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

Wacha tujadili kila chaguo linalotumiwa katika amri hapo juu kuunda faili ya kumbukumbu ya tar.

  1. c - Inaunda faili mpya ya kumbukumbu ya .tar.
  2. v - Onyesha kwa ufupi maendeleo ya faili ya .tar.
  3. f - Aina ya jina la faili ya faili ya kumbukumbu.

Ili kuunda faili ya kumbukumbu ya gzip iliyobanwa tunatumia chaguo kama z. Kwa mfano, amri iliyo hapa chini itaunda faili iliyobanwa ya MyImages-14-09-12.tar.gz ya saraka /home/MyImages. (Kumbuka: tar.gz na tgz zote zinafanana).

# 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

Kipengele cha bz2 kinabana na kuunda faili ya kumbukumbu chini ya saizi ya gzip. Mfinyazo wa bz2 huchukua muda zaidi kubana na kubana faili kuliko gzip, ambayo huchukua muda mfupi.

Ili kuunda faili ya tar iliyoshinikizwa sana tunatumia chaguo j. Amri ya mfano ifuatayo itaunda faili ya Phpfiles-org.tar.bz2 kwa saraka /home/php. (Kumbuka: tar.bz2 na tbz ni sawa na 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

Ili kufuta au kutoa faili ya tar, toa tu amri ifuatayo kwa kutumia chaguo x (dondoo). Kwa mfano, amri iliyo hapa chini itaondoa faili public_html-14-09-12.tar katika saraka ya sasa ya kufanya kazi.

Ikiwa unataka kufuta kwenye saraka tofauti basi tumia chaguo kama -C (saraka iliyoainishwa).

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

Ili kubandua faili ya kumbukumbu ya tar.gz, endesha tu amri ifuatayo. Ikiwa tungependa kufuta katika saraka tofauti, tumia tu chaguo -C na njia ya saraka, kama inavyoonyeshwa kwenye mfano hapo juu.

# 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

Ili Kuondoa faili iliyobanwa sana ya tar.bz2, tumia tu amri ifuatayo. Amri ya mfano iliyo hapa chini itaondoa faili zote za .flv kutoka kwa faili ya kumbukumbu.

# 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

Ili kuorodhesha yaliyomo kwenye faili ya kumbukumbu ya tar, endesha tu amri ifuatayo na chaguo t (yaliyomo kwenye orodha). Amri iliyo hapa chini itaorodhesha maudhui ya faili ya uploadprogress.tar.

# 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

Tumia amri ifuatayo kuorodhesha yaliyomo kwenye faili ya tar.gz.

# 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

Ili kuorodhesha yaliyomo kwenye faili ya tar.bz2, toa amri ifuatayo.

# 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

Ili kutoa faili moja inayoitwa cleanfiles.sh kutoka cleanfiles.sh.tar tumia amri ifuatayo.

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

cleanfiles.sh

Ili kutoa faili moja ya tecmintbackup.xml kutoka kwa faili ya kumbukumbu ya tecmintbackup.tar.gz, tumia amri kama ifuatavyo.

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

tecmintbackup.xml

Ili kutoa faili moja inayoitwa index.php kutoka kwa faili Phpfiles-org.tar.bz2 tumia chaguo lifuatalo.

# 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

Ili kutoa au kutoa faili nyingi kutoka kwa faili ya kumbukumbu ya tar, tar.gz na tar.bz2. Kwa mfano, amri iliyo hapa chini itatoa faili 1 faili 2 kutoka kwa faili za kumbukumbu.

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

Ili kutoa kikundi cha faili tunatumia wildcard-based kuchomoa. Kwa mfano, kutoa kikundi cha faili zote ambazo mchoro wake huanza na .php kutoka kwa faili ya kumbukumbu ya tar, tar.gz na tar.bz2.

# 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

Kuongeza faili au saraka kwa faili zilizopo za kumbukumbu za tar tunatumia chaguo r (ongeza). Kwa mfano, tunaongeza faili xyz.txt na saraka php kwenye faili iliyopo ya kumbukumbu ya tecmint-14-09-12.tar.

# 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

Amri ya tar haina chaguo la kuongeza faili au saraka kwa faili iliyopo ya kumbukumbu ya tar.gz na tar.bz2 iliyobanwa. Ikiwa tutajaribu tutapata makosa yafuatayo.

# 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

Ili kuthibitisha tar au faili iliyoshinikizwa kwenye kumbukumbu tunatumia chaguo W (thibitisha). Ili kufanya hivyo, tumia tu mifano ifuatayo ya amri. (Kumbuka: Huwezi kufanya uthibitishaji kwenye faili iliyobanwa ( *.tar.gz, *.tar.bz2 ) kwenye kumbukumbu).

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

Ili kuangalia saizi ya faili yoyote ya kumbukumbu ya tar, tar.gz na tar.bz2, tumia amri ifuatayo. Kwa mfano, amri iliyo hapa chini itaonyesha ukubwa wa faili ya kumbukumbu katika Kilobytes (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 – unda faili ya kumbukumbu.
  • x - toa faili ya kumbukumbu.
  • v - onyesha maendeleo ya faili ya kumbukumbu.
  • f - jina la faili la faili ya kumbukumbu.
  • t - kutazama maudhui ya faili ya kumbukumbu.
  • j – kichujio cha kumbukumbu kupitia bzip2.
  • z - kichujio cha kumbukumbu kupitia gzip.
  • r - ongeza au usasishe faili au saraka kwa faili zilizopo za kumbukumbu.
  • W - Thibitisha faili ya kumbukumbu.
  • wildcards - Bainisha ruwaza katika amri ya lami ya UNIX.

Ni hivyo kwa sasa, natumai mifano ya amri ya tar hapo juu inatosha kwako kujifunza, na kwa habari zaidi tafadhali tumia man tar amri.

Ikiwa unatafuta kugawanya faili kubwa ya kumbukumbu ya tar katika sehemu nyingi au vizuizi, pitia nakala hii:

  • Jinsi ya Kugawanya Faili ya Lami Katika Faili Nyingi za Ukubwa Fulani
  • Jinsi ya Kupakua na Kutoa Faili za Lami kwa Amri Moja

Ikiwa tumekosa mifano yoyote tafadhali shiriki nasi kupitia sanduku la maoni na tafadhali usisahau kushiriki nakala hii na marafiki zako. Hii ndiyo njia bora ya kusema asante....