21 Примери за команда Tar в Linux

Сподели

Linux “катран” означава лентов архив, който се използва от голям брой Linux/Unix системните администратори да се справят с архивирането на лентови устройства в Linux.

The tar команда в Linux се използва за извличане на колекция от файлове и директории в силно компресиран архивен файл, обикновено наричан tarball или катран, gzip и bzip в Linux.

The катран е най-широко използваната команда за създаване на компресирани архивни файлове, които могат лесно да се преместват от един диск на друг диск или машина на машина.

tar - Помощна програма за архивиране на Linux
tar – Помощна програма за архивиране на Linux

В тази статия ще прегледаме и обсъдим различни примери за команда tar включително как да създавате архивни файлове с помощта на (катран, tar.gz, и катран bz2) компресия, как да извлечете архивни файлове, да извлечете един файл, да видите съдържанието на файла, да проверите файл, да добавите файлове или директории към съществуващия архивен файл, да оцените размера на архивния файл на tar и т.н.

Основната цел на това ръководство е да предостави различни примери за команда tar това може да ви помогне да разберете и да станете експерт в манипулирането на tar архиви.

1. Създайте tar файл в Linux

Примерът по-долу на катран команда ще създаде a катран архивен файл tecmint-14-09-12.tar за директория /начало/tecmint в текущата работна директория.

Вижте примера на катран команда в действие.

# 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

Нека обсъдим всяка опция, използвана по-горе катран команда за създаване на tar архивен файл.

  • ° С – Създава нов .катран архивен файл.
  • v – Многословно покажете на .катран прогрес на файла.
  • f – Тип име на архивния файл.

2. Създайте файл tar.gz в Linux

За да създадете компресиран gzip архивен файл използваме опцията z. Например командата по-долу ще създаде компресиран MyImages-14-09-12.tar.gz файл за директорията /начало/Моите изображения. (Забележка: tar.gz и tgz са подобни).

# 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

3. Създайте файл tar.bz2 в Linux

The bz2 функцията компресира и създава архивен файл, по-малък от размера на gzip. The bz2 компресията отнема повече време за компресиране и декомпресиране на файлове от gzip, което отнема по-малко време.

За да създадем силно компресиран tar файл, използваме опцията й. Следващата примерна команда ще създаде a Phpfiles-org.tar.bz2 файл за директория /начало/php. (Забележка: tar.bz2 и tbz е подобен на 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

4. Извлечете Tar файл в Linux

За да разархивирате или извлечете tar файл, просто издайте следната команда, като използвате опцията х (екстракт). Например командата по-долу ще разархивира файла public_html-14-09-12.tar в настоящата работна директория.

Ако искате да разархивирате в друга директория, използвайте опцията -° С (определена директория).

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

5. Извлечете файла tar.gz в Linux

За да декомпресирате tar.gz архивен файл, просто изпълнете следната команда. Ако искаме да разархивираме в различни директории, просто използвайте опцията -° С и пътя на директорията, както е показано в горния пример.

# 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

6. Извлечете файла tar.bz2 в Linux

За да декомпресирате силно компресирания катран bz2 файл, просто използвайте следната команда. Примерната команда по-долу ще разархивира всички .flv файлове от архивния файл.

# 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

7. Избройте Tar файлове в Linux

За да изброите съдържанието на архивния файл tar, просто изпълнете следната команда с опция T (съдържание на списък). Командата по-долу ще покаже съдържанието на 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

8. Избройте файловете tar.gz в Linux

Използвайте следната команда, за да изброите съдържанието на tar.gz файл.

# tar -tvf staging.tecmint.com.tar.gz

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

9. Избройте файловете tar.bz2 в Linux

За да изброите съдържанието на катран bz2 файл, издайте следната команда.

# 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

10. Извлечете файл от Tar в Linux

За да извлечете един файл, извикайте cleanfiles.sh от cleanfiles.sh.tar използвайте следната команда.

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

cleanfiles.sh

11. Извлечете файл от tar.gz в Linux

За извличане на един файл tecmintbackup.xml от tecmintbackup.tar.gz архивен файл, използвайте командата, както следва.

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

tecmintbackup.xml

12. Извлечете файл от tar.bz2 в Linux

За да извлечете един файл, извикайте index.php от файла Phpfiles-org.tar.bz2 използвайте следната опция.

# 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

13. Извлечете множество Tar файлове в Linux

За да извлечете или разархивирате няколко файла от катран, tar.gz, и катран bz2 архивни файлове. Например командата по-долу ще извлече „файл 1” и “файл 2” от архивните файлове.

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

14. Извлечете група от файлове с помощта на заместващ знак в Linux

За извличане на група файлове, които използваме базирани на заместващи знаци извличане. Например, за да извлечете група от всички файлове, чийто шаблон започва с .php от tar, tar.gz и 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

15. Добавете файлове или директории към Tar в Linux

За да добавим файлове или директории към съществуващите tar архивни файлове, използваме опцията r (добавям). Например добавяме файла xyz.txt и директория php към съществуващото 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

16. Добавете файлове или директории към файловете tar.gz и tar.bz2

Командата tar няма опция за добавяне на файлове или директории към съществуващ компресиран tar.gz и катран bz2 архивен файл. Ако опитаме, ще получим следната грешка.

# 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

17. Как да проверите tar, tar.gz и tar.bz2 архивен файл

За да проверим всеки tar или компресиран архивиран файл, използваме опцията У (проверявам). За да направите това, просто използвайте следните примери на команди. (Забележка: Не можете да извършите проверка на компресиран ( *.tar.gz, *.tar.bz2 ) архивен файл).

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

18. Проверете размера на файла Tar в Linux

За да проверите размера на всяка катран, tar.gz, и катран bz2 архивен файл, използвайте следната команда. Например командата по-долу ще покаже размера на архивния файл в килобайти (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

19. Изключете файлове и директории в Tar File

За да изключите определени файлове и директории, докато създавате a tar.gz файл, можете да използвате следната команда с --exclude опция, която ще изключи файлове и директории при създаване на tar архивен файл, както е показано.

# tar --exclude="file1.txt" -zcvf backup.tar.gz /home/tecmint
# tar --exclude="/home/tecmint/uploads" -zcvf backup.tar.gz /home/tecmint

В горната команда изключихме файла ‘file1.txt‘ и ‘качвания‘ директория от /начало/tecmint папка.

За да изключите файлове със специфични файлови разширения (.txt) когато създавате tar архивен файл, използвайте:

# tar --exclude="*.txt" -zcvf backup.tar.gz /home/tecmint

20. Премахнете файл и директория от Tar файл

Следната команда tar ще премахне файл или директория от вече създадения tar файл с помощта на --delete опция, както е показано.

# tar --delete -f backup.tar.gz file1.txt
# tar --delete -f backup.tar.gz '/home/tecmint/uploads'

21. Извличане на файлово разширение в Tar файл

Следната команда tar ще извлича само файлове с конкретното разширение .png от архивния файл tar с помощта на --wildcards опция, както е показано.

# tar -xvf backup.tar.gz --wildcards '*.png'

22. Използване и опции на командата Tar

  • -c – създаване на архивен файл.
  • -x – извличане на архивен файл.
  • -v – показва напредъка на архивния файл.
  • -f – име на архивния файл.
  • -t – преглед на съдържанието на архивния файл.
  • -u – архивира и добавя към съществуващ архивен файл.
  • -j – филтрирайте архива през bzip2.
  • -z – филтрирайте архива през gzip.
  • -r – добавяне или актуализиране на файлове или директории към съществуващите архивни файлове.
  • -W – Проверка на архивен файл.
  • -A – свързва архивните файлове.
  • --wildcards – Посочете модели в командата UNIX tar.
  • --exclude – изключва файлове и директории при създаване на архива.
  • --delete – премахнете файла и директорията от архива.

Това е засега, надявам се на горното примери за команда tar са достатъчни, за да научите, а за повече информация, моля, използвайте взимаш команда.

# man tar

Ако искате да разделите всеки голям tar архивен файл на множество части или блокове, просто прегледайте тази статия:

  • Как да разделите Tar файл на няколко файла с определен размер
  • Как да изтеглите и извлечете Tar файлове с една команда

Ако сме пропуснали примери, моля, споделете с нас чрез полето за коментари и моля, не забравяйте да споделите тази статия с приятелите си. Това е най-добрият начин да благодарите….

Публикациите се превеждат автоматично с google translate

Loading


Сподели