Obsługa programu Tape ARchiver(tar)

andrzej@desktop:/tmp$ cd /tmp
andrzej@desktop:/tmp$ mkdir -p arch/1 arch/2 arch/3
andrzej@desktop:/tmp$ tree arch/
arch/
|-- 1
|-- 2
`-- 3

3 directories, 0 files
andrzej@desktop:/tmp$ for i in `seq 3`;do echo plik$i > arch/$i/p.txt; done
andrzej@desktop:/tmp$ for i in `seq 3`;do cat arch/$i/p.txt; done
plik1
plik2
plik3
andrzej@desktop:/tmp$ tree arch
arch
|-- 1
|   `-- p.txt
|-- 2
|   `-- p.txt
`-- 3
    `-- p.txt

3 directories, 3 files
andrzej@desktop:/tmp$ tar -cf arch.tar arch
andrzej@desktop:/tmp$ tar -jcf arch.tar.bz arch
andrzej@desktop:/tmp$ du -sh arch*
28K	arch
12K	arch.tar
4,0K	arch.tar.bz
andrzej@desktop:/tmp$ tar -tf arch.tar
arch/
arch/1/
arch/1/p.txt
arch/3/
arch/3/p.txt
arch/2/
arch/2/p.txt
andrzej@desktop:/tmp$ tar -tvf arch.tar.bz
drwxr-xr-x andrzej/andrzej   0 2009-01-12 14:16 arch/
drwxr-xr-x andrzej/andrzej   0 2009-01-12 14:17 arch/1/
-rw-r--r-- andrzej/andrzej   6 2009-01-12 14:19 arch/1/p.txt
drwxr-xr-x andrzej/andrzej   0 2009-01-12 14:18 arch/3/
-rw-r--r-- andrzej/andrzej   6 2009-01-12 14:19 arch/3/p.txt
drwxr-xr-x andrzej/andrzej   0 2009-01-12 14:18 arch/2/
-rw-r--r-- andrzej/andrzej   6 2009-01-12 14:19 arch/2/p.txt
andrzej@desktop:/tmp$ echo "nowy plik" > nowy.txt
andrzej@desktop:/tmp$ tar -rf arch.tar nowy.txt
andrzej@desktop:/tmp$ tar -tf arch.tar
arch/
arch/1/
arch/1/p.txt
arch/3/
arch/3/p.txt
arch/2/
arch/2/p.txt
nowy.txt
andrzej@desktop:/tmp$ mkdir untar
andrzej@desktop:/tmp$ mv arch.tar untar/arch.tar
andrzej@desktop:/tmp$ cd untar/
andrzej@desktop:/tmp/untar$ tar -xvf arch.tar
arch/
arch/1/
arch/1/p.txt
arch/3/
arch/3/p.txt
arch/2/
arch/2/p.txt
nowy.txt
andrzej@desktop:/tmp/untar$ tree
.
|-- arch
|   |-- 1
|   |   `-- p.txt
|   |-- 2
|   |   `-- p.txt
|   `-- 3
|       `-- p.txt
|-- arch.tar
`-- nowy.txt

4 directories, 5 files
andrzej@desktop:/tmp/untar$

Omówienie zaprezentowanych poleceń

andrzej@desktop:/tmp$ cd /tmp

Zmiana katalogu bieżącego na katalog w którym mamy prawo zapisu (/tmp).

andrzej@desktop:/tmp$ mkdir -p arch/1 arch/2 arch/3

Utworzenie katalogu arch wraz z podkatalogami.

andrzej@desktop:/tmp$ tree arch/
arch/
|-- 1
|-- 2
`-- 3

3 directories, 0 files

Wyświetlenie zawartości katalogu arch w formie drzewa.

andrzej@desktop:/tmp$ for i in `seq 3`;do echo plik$i > arch/$i/p.txt; done

Utworzenie plików w podkatalogach katalogu arch.

andrzej@desktop:/tmp$ for i in `seq 3`;do cat arch/$i/p.txt; done
plik1
plik2
plik3

Wyświetlenie zawartości plików w podkatalogach.

andrzej@desktop:/tmp$ tree arch
.
|-- arch
|   |-- 1
|   |   `-- p.txt
|   |-- 2
|   |   `-- p.txt
|   `-- 3
|       `-- p.txt
|-- arch.tar
`-- nowy.txt

4 directories, 5 files

Wyświetlenie zawartości katalogu arch w formie drzewa.

andrzej@desktop:/tmp$ tar -cf arch.tar arch

Utworzenie archiwum tar o nazwie arch.tar z katalogu arch.

andrzej@desktop:/tmp$ tar -jcf arch.tar.bz arch

Utworzenie skompresowanego programem bzip2 archiwum tar o nazwie arch.tar.gz. Zawartość archiwum jest podobna jak wcześniej, przykład pokazuje w jaki sposób można kompresować dane archiwum(opcja j).

andrzej@desktop:/tmp$ du -sh arch*
28K	arch
12K	arch.tar
4,0K	arch.tar.bz

Sprawdzenie ile miejsca zajmują archiwa oraz katalog źródłowy. Zgodnie z oczekiwaniem, najmniej miejsca zajmuje archiwum skompresowane programem bzip2.

andrzej@desktop:/tmp$ tar -tf arch.tar
arch/
arch/1/
arch/1/p.txt
arch/3/
arch/3/p.txt
arch/2/
arch/2/p.txt

Wyświetlenie zawartości archiwum arch.tar(opcja t).

andrzej@desktop:/tmp$ tar -tvf arch.tar.bz
drwxr-xr-x andrzej/andrzej   0 2009-01-12 14:16 arch/
drwxr-xr-x andrzej/andrzej   0 2009-01-12 14:17 arch/1/
-rw-r--r-- andrzej/andrzej   6 2009-01-12 14:19 arch/1/p.txt
drwxr-xr-x andrzej/andrzej   0 2009-01-12 14:18 arch/3/
-rw-r--r-- andrzej/andrzej   6 2009-01-12 14:19 arch/3/p.txt
drwxr-xr-x andrzej/andrzej   0 2009-01-12 14:18 arch/2/
-rw-r--r-- andrzej/andrzej   6 2009-01-12 14:19 arch/2/p.txt

Program tar potrafi także wyświetlić szczegółowe informacje o zawartości skompresowanego archiwum. Dostęp do szczegółów daje opcja v.

andrzej@desktop:/tmp$ echo "nowy plik" > nowy.txt

Utworzenie nowego pliku o nazwie nowy.txt.

andrzej@desktop:/tmp$ tar -rf arch.tar nowy.txt

Dodanie pliku nowy.txt do istniejącego archiwum tar.

andrzej@desktop:/tmp$ tar -tf arch.tar
arch/
arch/1/
arch/1/p.txt
arch/3/
arch/3/p.txt
arch/2/
arch/2/p.txt
nowy.txt

Wyświetlenie zawartości archiwum, widoczny jest dołączony przed chwilą plik nowy.txt.

andrzej@desktop:/tmp$ mkdir untar

Utworzenie katalogu untar.

andrzej@desktop:/tmp$ mv arch.tar untar/arch.tar

Przeniesienie archiwum arch.tar do nowego katalogu.

andrzej@desktop:/tmp$ cd untar/

Zmiana katalogu bieżącego.

andrzej@desktop:/tmp/untar$ tar -xvf arch.tar
arch/
arch/1/
arch/1/p.txt
arch/3/
arch/3/p.txt
arch/2/
arch/2/p.txt
nowy.txt

Rozpakowane archiwum(opcja x) z wyświetleniem dokładnych informacji(opcja v).

andrzej@desktop:/tmp/untar$ tree
.
|-- arch
|   |-- 1
|   |   `-- p.txt
|   |-- 2
|   |   `-- p.txt
|   `-- 3
|       `-- p.txt
|-- arch.tar
`-- nowy.txt

4 directories, 5 files

Wyświetlenie wypakowanego archiwum w formie drzewa.

Więcej informacji

Dodatkowe informacje można uzyskać przy pomocy manuali systemowych.

man tar
man 5 tar
info tar
apropos tar
tar --help

Szczegółowy podręcznik do programu tar znajduje się na stronie domowej projektu.