Despre compresia fișierelor cu comanda tar am mai vorbit. În acest articol voi prezenta câteva exemple de folosire a comenzilor tar
și star
; astfel de exerciții, într-o formă sau alta, pot să apară și în cadrul unui examen RHCSA.
1. În timp ce vă aflați în directorul home al userului root, creați o arhivă tar a întregului director /var/log, iar fișierul tar numiți-l logs.tar.
# pwd /root # tar cvf logs.tar /var/log tar: Removing leading `/' from member names /var/log/ /var/log/tallylog [...] # ll -h -rw-r--r--. 1 root root 4.6M May 1 03:46 logs.tar
Vă rog să remarcați afirmația "tar: Removing leading `/' from member names" care apare după ce comanda tar începe să ruleze. Dacă cerința este să fie păstrată calea absolută a fișierelor (preserve absolut path), se va folosi comanda tar cu argumentul -P: tar cPvf logs01.tar /var/log
.
2. Listați conținutul arhivei tar la ieșirea standard.
# tar tf logs.tar var/log/ var/log/tallylog var/log/grubby_prune_debug [...]
Dacă listați conținutul fișierului logs01.tar, veți obține:
# tar tf logs01.tar tar: Removing leading `/' from member names /var/log/ /var/log/tallylog /var/log/grubby_prune_debug [...]
3. Folosind comanda gzip
, comprimați arhiva tar logs.tar.
# gzip logs.tar # ll -rw-r--r--. 1 root root 471880 May 1 03:46 logs.tar.gz
Verificare:
# file logs.tar.gz logs.tar.gz: gzip compressed data, was "logs.tar", from Unix, last modified: Wed May 1 03:46:31 2019
Notă: fișierul logs.tar.gz poate fi obținut și dintr-o singură comandă - tar cvfz logs.tar.gz /var/log
.
Dacă se cere arhivarea cu bzip2, în loc de z (care indică arhivarea cu gzip), folosiți argumentul j (indică arhivarea cu bzip2): tar cvfj logs.tar.bz2 /var/log.
4. Extrageți conținutul arhivei cmprimate logs.tar.gz în directorul /root/var/log.
# tar xvfz logs.tar.gz
5. Compresia fișierelor în Linux poate fi făcută și cu o altă comandă. Folosind comanda star
, creați o arhivă tar a directorului /root/var/log numită user-logs.tar. Asigurați-vă că se păstrează întreaga structură a căilor fișierelor, astfel încât arhiva să indice exact locul unde a aparținut fișierul (indicație: /root/var/log trebuie să preceadă fiecare fișier din arhivă).
# yum install star -y # star -c /root/var/log f=user-logs.tar star: 468 blocks + 0 bytes (total of 4792320 bytes = 4680.00k).
6. Listați conținutul fișierului nou creat cu comanda star
.
# star -t f=user-logs.tar /root/var/log/ /root/var/log/tallylog /root/var/log/grubby_prune_debug [...]
7. Comprimați arhiva star rezultată anterior într-un fișier de tip bzip2.
# yum install bzip2 -y # bzip2 user-log.tar #ll -rw-r--r--. 1 root root 260951 May 1 04:11 user-logs.tar.bz2 # file user-logs.tar.bz2 user-logs.tar.bz2: bzip2 compressed data, block size = 900k
8. Extrageți arhiva comprimată anterior cu bzip2 în directorul /root.
# star -bz -x f=user-logs.tar.bz2 star: WARNING: skipping leading '/' on filenames. star: 468 blocks + 0 bytes (total of 4792320 bytes = 4680.00k).
În încheiere, reamintesc faptul că cea mai folosită comandă pentru arhivarea fișierelor în Linux este tar
; dacă se cere în mod imperativ, instalați și folosiți comanda star
.
În principal, sunt 2 comenzi pentru comprimarea fișierelor: gzip
și bzip2
. Ele fac același lucru, dar după algoritmi diferiți.
Un alt format pentru arhivare/compresie a fișierelor este .zip. De cele mai multe ori, acest format este folosit pentru arhive comprimate care sunt deschise atât în Linux, cât și în Windows. Comanda zip
este relativ similară lui tar - consultați manualul comenzii zip
. Pentru dezarhivare se folosește comanda unzip
. Comenzile zip
și unzip
nu sunt instalate default într-o distribuție Linux, de aceea este necesară instalarea lor înainte de folosire. Exemplu:
# yum install zip unzip -y # zip -r nume_arhiva /home # unzip nume_arhiva
Lasă un răspuns