2013-08-23 33 views

Trả lời

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

hay, với GNU tar

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

Tôi thích khái niệm sử dụng 'gzip' trong trường hợp tar không hiểu lưu trữ nén. – Alfe

211

Bạn có thể sử dụng tùy chọn -C (hoặc --directory nếu bạn thích tùy chọn dài) để cung cấp cho các mục đích của sự lựa chọn của bạn trong trường hợp bạn đang sử dụng phiên bản Gnu của tar. Thư mục nên tồn tại:

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

Nếu bạn không sử dụng một tar có khả năng giải nén vào một thư mục cụ thể, bạn có thể chỉ đơn giản là cd vào thư mục mục tiêu của bạn trước khi gọi tar; sau đó bạn sẽ phải cung cấp cho một con đường hoàn chỉnh để lưu trữ của bạn, tất nhiên. Bạn có thể làm điều này trong một subshell Phạm vi để tránh ảnh hưởng đến kịch bản xung quanh:

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

Hoặc, nếu không phải là một đường dẫn tuyệt đối hay một đường dẫn tương đối đến tập tin lưu trữ là phù hợp, bạn cũng có thể sử dụng để đặt tên cho các kho lưu trữ bên ngoài của subshell Phạm vi:

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

chiết xuất myArchive.tar-/destinationDirectory

Commands:

cd /destinationDirectory 
pax -rv -f myArchive.tar -s ',^/,,' 
Các vấn đề liên quan