Lệnh những gì tôi cần phải giải nén/trích xuất .tar.cùng tập tin?

Tôi nhận được một lớn .tar.cùng tập tin từ một khách hàng có thể có khoảng 800 của các tập tin hình ảnh (khi không nén.) Của chúng tôi lưu trữ của công ty ftp là nghiêm túc chậm, để chiết xuất tất cả các tập tin địa phương và đưa chúng ta qua ftp không phải là thực tế. Tôi đã có thể tin những .tar.cùng file lưu trữ của chúng tôi, nhưng khi tôi ssh vào mục, và cố sử dụng giải nén, nó mang lại cho tôi này lỗi:

[esthers@clients locations]$ unzip community_images.tar.gzArchive:  community_images.tar.gz  End-of-central-directory signature not found.  Either this file is not a zipfile, or it constitutes one disk of a multi-part archive.  In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive.note:  community_images.tar.gz may be a plain executable, not an archiveunzip:  cannot find zipfile directory in one of community_images.tar.gz or community_images.tar.gz.zip, and cannot find community_images.tar.gz.ZIP, period.

Lệnh những gì tôi cần phải sử dụng để chiết xuất tất cả các tập tin trong một .tar.cùng tập tin?

Loại man tar để biết thêm thông tin, nhưng lệnh này nên làm các thủ thuật:

tar -xvzf community_images.tar.gz

Để giải thích một chút nữa, tar thu tất cả các tập tin vào một gói, community_images.tar. Các nén dữ liệu chương trình áp dụng nén, do đó gz mở rộng. Vì vậy, các lệnh không một vài điều:

  • f này phải là người cuối cùng cờ của lệnh, và tar fîle phải là ngay lập tức sau. Nó nói với tar tên và đường của các tập tin nén.
  • z cho tar để giải nén lưu trữ sử dụng gtừip
  • x: tar có thể thu thập các tập tin hay exđường chúng. x không sau này.
  • v làm cho tar nói chuyện rất nhiều. Verbose ra cho bạn thấy tất cả các tập tin được chiết xuất.

Để chiết xuất vào một custom thư mục, thêm những -C lựa chọn với một mục tên của sự lựa chọn của bạn:

tar -xvzf community_images.tar.gz -C some_custom_folder_name

Nếu bạn muốn các tập tin được chiết xuất cụ thể đích bạn có thể thêm -C /destination/path/
Hãy chắc chắn rằng bạn làm cho các mục đầu tiên, trong trường hợp này: ~/hình Ảnh/Cộng đồng

Ví dụ:

mkdir ~/Pictures/Communitytar xf community_images.tar.gz -C /home/emmys/Pictures/Community/

Bạn có thể dễ dàng ghi nhớ nó nếu bạn xem xét nói tar để e X đường một F

gif of process done at terminal

Chú ý: Hãy nhớ rằng bạn có thể tìm người đàn ông bên trong trang ?+hạn để tìm kiếm, và sau đó nN để đi đến tiếp theo hoặc trước đó dụ của hạn bạn đang tìm kiếm.

Tại một số điểm tar đã được nâng cấp để tự động giải nén. Tất cả bạn cần bây giờ là:

tar xf community_images.tar.gz

Cùng một lời giải thích được áp dụng:

  • f này phải là người cuối cùng cờ của lệnh, và tar fîle phải là ngay lập tức sau. Nó nói với tar tên và đường của các tập tin nén.
  • x: nhữngxđường các tập tin.

Lưu ý sự thiếu gạch nối cho lệnh cờ. Đây là bởi vì hầu hết một phiên bản của tar cho phép cả gnu và doc theo phong cách lựa chọn (đơn giản đa dạng yêu cầu một dấu gạch nối, doc không).

Nhớ tất cả các lá cờ cho tar có thể là tẻ nhạt. Bắt buộc ngay bây giờ:

enter image description here

Vì vậy, tôi thực hiện nhỏ của riêng tôi kịch bản trong Python để làm điều đó. Nhanh, bẩn thỉu, cp-giống như trong việc sử dụng:

#!/usr/bin/env python3import tarfile,sys,ostf = tarfile.open(name=sys.argv[1],mode='r:gz')where = '.'if len(sys.argv) == 3:    where = sys.argv[2]tf.extractall(path=where)tf.close()

Sử dụng nó như vậy:

myuntar.py archive.tar

Xem cũng tương tự kịch bản cho việc giải nén zip.

Câu Trả Lời Nhanh Chóng:

tar -xvf  <.tar file> or <.tar.xz file>tar -xzvf <.tar.gz file>tar -xjvf <.tar.bz2 file>

[Chú Ý]:

  • -v Verbosely danh sách các tập tin xử lý.
  • -z Bộ lọc khu lưu trữ qua nén dữ liệu.
  • -f Sử dụng file lưu trữ hoặc thiết bị lưu TRỮ.
  • -x Chiết xuất tập tin từ một kho lưu trữ.
  • -j bzip2.
  • tar -xf kho lưu trữ.tar # Chiết xuất tất cả các tập tin từ archive.tar.

Trong trường hợp anh không thể để chiết xuất .tar.gz tập tin

tar -xvzf fileName.tar.gz

Cố gắng giải nén sử dụng

tar xf fileName.tar.gz

Bạn có thể làm điều này ở bước đầu tiên:

gunzip community_images.tar.cùng

Sau đó bạn có các tập tin: community_images.tar

Bước thứ hai sẽ được:

tar -xvf community_images.tar

Và *.tar tập tin sẽ được chiết xuất.

tar xvf tập tin.tar.cùng

  • x cho trích
  • v cho tiết (danh sách các tập tin)
  • f cho tên là tiếp theo

Bất kỳ điều khiển từ xa phiên bản hiện đại của tar nên tự động phát hiện rằng kho lưu trữ là gzipped, và thêm "z" cho bạn.