2013-08-23 9 views

Odpowiedz

79
gzip -dc archive.tar.gz | tar -xf - -C /destination 

lub smołą GNU

tar xzf archive.tar.gz -C /destination 
+3

Podoba mi się pomysł użycia 'gzip' na wypadek, gdyby tar nie rozumiał spakowanych archiwów. – Alfe

211

Można użyć opcji -C (lub --directory jeśli wolisz długie opcje), uzyskując docelowy katalog z wyboru w przypadku korzystania z wersji GNU z tar. Katalog powinien istnieć:

mkdir foo 
tar -xzf bar.tar.gz -C foo 

Jeśli nie używasz tar stanie wyciągnąć do określonego katalogu, można po prostu cd do katalogu docelowego przed wywołaniem tar; wtedy oczywiście będziesz musiał podać pełną ścieżkę do swojego archiwum. Można to zrobić w podpowłoce określania zakresu w celu uniknięcia wpływania na otaczającą skrypt:

mkdir foo 
(cd foo; tar -xzf ../bar.tar.gz) # instead of ../ you can use an absolute path as well 

Lub, jeśli nie absolutna ścieżka ani względną ścieżkę do pliku archiwum jest odpowiednia, można również użyć tego nazwać archiwum zewnątrz z podpowłoce określania zakresu:

TARGET_PATH=a/very/complex/path/which/might/even/be/absolute 
mkdir -p "$TARGET_PATH" 
(cd "$TARGET_PATH"; tar -xzf -) < bar.tar.gz 
2

Ekstrakty myArchive.tar do /destinationDirectory

polecenia:

cd /destinationDirectory 
pax -rv -f myArchive.tar -s ',^/,,'