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.
- c – Oppretter en ny .tar-arkivfil.
- v – Vis detaljert fremdriften for .tar-filen.
- 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å....