Có các tùy chọn khác để giải nén một tập tin trong Ubuntu ngoài việc giải nén không? [đóng cửa]


11

Sysadmin của tôi hiện không thể truy cập được và tôi có một tệp nén trên máy chủ mà tôi muốn giải nén ... tuy nhiên, hiện tại chúng tôi không có cài đặt zip và giải nén và tôi không có quyền truy cập root để cài đặt chúng. ..

Tôi có hết lựa chọn không? Có những thứ khác có thể giải nén tập tin này?


Là tar không được cài đặt? tar -x
kẻ lừa đảo

vừa thử tar -x file.zip và có vẻ như nó đang làm gì đó ...
johnnietheblack

@ spuder bạn nên để lại câu trả lời trong trường hợp điều này hoạt động, và tôi sẽ nâng cấp ya
johnnietheblack

Câu trả lời:


10

Tôi đã không thử điều này, nhưng , có một zipfilemô-đun trong thư viện tiêu chuẩn của Python kể từ phiên bản 1.6 và vì phiên bản 2.6 đã có một extractallphương thức

Bạn sẽ có thể làm một cái gì đó như:

  1. Tạo một tệp có nội dung sau (chỉnh sửa nó để phù hợp với trường hợp sử dụng của bạn).
  2. Lưu tệp dưới dạng "unzipfile.py"
  3. Chạy với python unzipfile.py

Và nó sẽ giải nén test.zipđể /home/user/directory.

import zipfile

with zipfile.ZipFile('test.zip', "r") as z:
  z.extractall("/home/user/directory")

Nguồn: https://stackoverflow.com/a/9432315/167299

Ngoài ra, BusyBox chứa một "mô-đun" giải nén và nếu bạn có thể tải xuống và chạy BusyBox được liên kết tĩnh, thì bạn có thể sử dụng điều đó để giải nén mọi thứ.


tôi đã thử phần đầu tiên và nhận được: Có thể tìm thấy chương trình 'nhập khẩu' trong các gói sau: * fantemagick * Graphicsmagick-fantemagick-compat - btw ... tôi đã không đánh giá thấp bạn
johnnietheblack

Oh. Bạn biết bạn cần chạy nó thông qua Python?
Tom O'Connor

1
Ôi. có vẻ như nó đã hoạt động .... Tôi đã vấp ngã thành công trong chế độ tương tác!
johnnietheblack

2
Chào mừng bạn đến với Python. Thật tuyệt vời.
Tom O'Connor

2
Bây giờ bạn có thể chỉ cần gọi mô-đun trực tiếp từ dòng lệnh python -m zipfile -e monty.zip target-dir/(xem docs.python.org/2/l Library / zipfile.html
Peter Gibson

11

Nếu bạn đã javacài đặt, jarlệnh có thể giải nén tệp nén:

jar xvf file.zip 

Lưu ý rằng bạn có thể cài đặt java mà không cần quyền truy cập root: http://docs.oracle.com/javase/7/docs/webnotes/install/linux/linux-jdk.html


1
Ngày hôm nay tôi đã học.
Tom O'Connor

Có thể tìm thấy chương trình 'jar' trong các gói sau: * default-jdk * fastjar * gcj-4.6-jdk * openjdk-6-jdk * gcj-4.5-jdk * openjdk-7-jdk Yêu cầu quản trị viên của bạn cài đặt một trong họ :(
johnnietheblack

1
Xem cập nhật câu trả lời của tôi.
jlliagre

Tôi hơi lo lắng khi cài đặt bất cứ thứ gì trên máy chủ, vì sợ cơn thịnh nộ của sysadmin của tôi, nhưng tôi chắc chắn sẽ thử điều này nếu cần.
johnnietheblack

2

BSD / Mac OSX

Tiện ích tar vận chuyển với các dẫn xuất Mac và BSD, hỗ trợ trích xuất kho lưu trữ zip từ lệnh tar

tar -xvf foo.zip

tar --version
bsdtar 2.8.3 - libarchive 2.8.3

Debian / RHEL

Các kho lưu trữ tar đi kèm với Ubuntu và những người khác không hỗ trợ giải nén các tệp zip. Tùy chọn tốt nhất sẽ là quét tệp vào máy có cài đặt zip.

tar -xvf foo.zip
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors

Kiểm tra khói

echo "the quick brown fox jumped over the lazy dog" > bar.txt
zip -r bar.zip bar.txt
rm bar.txt
tar -xvf bar.txt
cat bar.txt
the quick brown fox jumped over the lazy dog

Cập nhật

Viết lại câu trả lời để làm rõ rằng tar -xvf chỉ hoạt động trên hệ điều hành bsd. Mặc dù đó là thông tin tốt, nhưng nó sẽ không hoạt động trong kịch bản này.


-zxvf làm gì?
johnnietheblack

Khi tôi thử điều đó, tôi nhận được tar: Điều này không giống như tar lưu trữ tar: Bỏ qua tiêu đề tiếp theo ... điều đó có nghĩa là nó thất bại, hay vẫn tiếp tục?
johnnietheblack

tarkhả năng xử lý tệp zip sẽ là một phần mở rộng Ubuntu tar (tức là GNU tar) dường như không cung cấp. -zdành cho các tệp được nén, không phải các tệp được nén (trừ khi đó là một phần mở rộng rất gần đây).
jlliagre

điều đó có nghĩa là nếu tôi tải lên một gzip nó sẽ hoạt động?
johnnietheblack

Nó sẽ, nhưng đó không phải là câu hỏi của bạn ;-)
jlliagre

2

Tôi không tin rằng có nhiều cách khác để giải nén tệp trên một hệ thống mà không có unzip, nhưng bạn có thể gửi tệp đến một hệ thống linux khác (có cài đặt giải nén hoặc truy cập root), giải nén tệp ở đó và - nếu cần - gửi giải nén tập tin trở lại máy chủ ban đầu

Lệnh gửi tệp từ máy chủ này sang máy chủ khác là scp. Cú pháp để gửi tệp là:

scp <filename> <username>@<otherhostname>:<portnumber><fullpathtolocation>
e.g.: scp file.zip  user@server.example.com:2222/home/user/ 

Hi vọng điêu nay co ich!


0

Sao chép tệp vào máy khác, giải nén và sao chép lại.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.