Przypadkowe skasowanie pliku, to częste zgłoszenie, z jakim spotyka się administrator. Na ogół oczywiście nie jest to skasowanie pliku przez niego samego, a przez któregoś użytkownika. A im więcej użytkowników administrator ma na serwerach, tym prawdopodobieństwo takiego zdarzenia jest większe.
Każdy wie, jak wypakować katalog/plik z archiwum - jeden szybko użyje do tego celu np. Midnight Commandera, znajdzie i wypakuje, co trzeba, inny ręcznie rozpakuje całe archiwum, przywróci co trzeba i usunie zbędne już dane, ale optymalnym rozwiązaniem rozwiązaniem w przypadku bardzo dużego archiwum jest wypakowanie tylko interesujących nas danych - nie tylko ze względu na czas odzyskiwania, ale również z powodu np. ograniczenia wolnego miejsca na dyskach, szybkości dysków, czy obciążenia pracującego systemu.
Narzędzie tar posiada oczywiście taką funkcjonalność, więc pokażę na krótkim przykładzie, jak:
1. Podglądamy archiwum:
$ tar tf archiwum.tar
archiwum/
archiwum/katalog2/
archiwum/katalog2/plik2.png
archiwum/katalog2/plik1.png
archiwum/katalog2/plik3.png
archiwum/katalog1/
archiwum/katalog1/plik2.png
archiwum/katalog1/plik1.png
archiwum/katalog1/plik3.png
archiwum/katalog3/
archiwum/katalog3/plik2.png
archiwum/katalog3/plik1.png
archiwum/katalog3/plik3.png
2. Rozpakowujemy wybrany katalog:
$ tar xvf archiwum.tar archiwum/katalog2/
archiwum/katalog2/
archiwum/katalog2/plik2.png
archiwum/katalog2/plik1.png
archiwum/katalog2/plik3.png
3. Rozpakowujemy wybrany plik:
$ tar xvf archiwum.tar archiwum/katalog3/plik1.png
archiwum/katalog3/plik1.png
4. Upewniamy się, że odzyskaliśmy to, co chcieliśmy:
$ ls -R archiwum/
archiwum/:
katalog2 katalog3archiwum/katalog2:
plik1.png plik2.png plik3.pngarchiwum/katalog3:
plik1.png
Powyższa logika działa również dla archiwów gzip (przełącznik 'z'), bzip2 (przełącznik 'j') itd.
Na koniec drobna uwaga (zdarzyło mi się odruchowo kilka razy popełnić ten drobny błąd) - przy rozpakowaniu należy użyć ścieżki względnej, a nie bezwzględnej, czyli bazując na przykładzie - należy użyć:
$ tar xvf archiwum.tar archiwum/katalog2/
zamiast:
$ tar xvf archiwum.tar /archiwum/katalog2/
Ale oczywiście w przypadku jego popełnienia narzędzie tar nas poinformuje o naszej niefrasobliwości. :)