Вопрос: Существуют ли другие опции для распаковки файла в Ubuntu, кроме «unzip»? [закрыто]


Мой sysadmin недоступен прямо сейчас, и у меня на сервере есть файл с zip-файлом, который я хотел бы разархивировать ... однако в настоящее время у нас нет ZIP и unzip, и у меня нет доступа root для их установки. ..

Я полностью из вариантов? Есть ли другие вещи, которые могут распаковать этот файл?


5
2017-08-10 19:47


Источник


Не установлен ли tar? tar -x - spuder
просто попробовал tar -x file.zip и, похоже, что-то делал ... - johnnietheblack
@spuder вы должны оставить ответ в случае, если это сработает, и я продолжу ya - johnnietheblack


Ответы:


Я этого не пробовал, но, есть zipfile модуль в стандартной библиотеке Python с версии 1.6, а так как версия 2.6 имела extractall метод

Вы должен быть в состоянии сделать что-то вроде:

  1. Создайте файл со следующим содержимым (отредактируйте его в соответствии с вашим прецедентом).
  2. Сохраните файл как «unzipfile.py»
  3. Запустить с помощью python unzipfile.py

И он будет извлекать test.zip в /home/user/directory,

import zipfile

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

Источник: https://stackoverflow.com/a/9432315/167299

С другой стороны, BusyBox содержит «unzip» модуль, и если вы можете загружать и запускать статически связанный BusyBox, то вы можете использовать его для распаковки вещей.


6
2017-08-10 19:51



Я попробовал первую часть этого и получил: «Импорт» программы можно найти в следующих пакетах: * imagemagick * graphicsmagick-imagemagick-compat - btw ... я не спустил вас вниз - johnnietheblack
Ой. Вы знаете, что вам нужно запустить его через Python? - Tom O'Connor
ВАУ. похоже, что это сработало ... Я споткнулся успешно в интерактивном режиме! - johnnietheblack
Добро пожаловать на Python. Это потрясающе. - Tom O'Connor
Теперь вы можете просто вызвать модуль непосредственно из командной строки python -m zipfile -e monty.zip target-dir/ (видеть docs.python.org/2/library/zipfile.html#command-line-interface) - Peter Gibson


Если у вас есть java установлен, jar команда может распаковать zip-файл:

jar xvf file.zip 

Обратите внимание, что вы можете установить java без доступа root: http://docs.oracle.com/javase/7/docs/webnotes/install/linux/linux-jdk.html


9
2017-08-10 20:08



Сегодня я узнал. - Tom O'Connor
Программа «jar» может быть найдена в следующих пакетах: * default-jdk * fastjar * gcj-4.6-jdk * openjdk-6-jdk * gcj-4.5-jdk * openjdk-7-jdk Попросите вашего администратора установить один из их :( - johnnietheblack
См. Мое обновление ответа. - jlliagre
Я немного scerred для того чтобы установить что-нибыдь на сервере, из страха гнева моего sysadmin, но я определенно попробую это если нужно. - johnnietheblack


Я не верю, что есть другие способы распаковки файла в системе без unzip, но вы можете отправить файл в другую Linux-систему (с установленным распакованным или доступным корнем), разархивируйте файл и, при необходимости, отправьте распакованный файл обратно на исходный сервер.

Команда отправки файла с одного сервера на другой scp, Синтаксис отправки файла:

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

Надеюсь это поможет!


2
2017-08-10 19:56





Если на сервере запущен Gnome, используйте утилиту архива

enter image description here

http://www.wikihow.com/Unzip-Files-in-Linux


1
2017-08-10 20:55





Скопируйте файл на другой компьютер, распакуйте и скопируйте обратно.


0
2017-08-10 19:53





BSD / Mac OSX

Утилита tar, поставляемая с производными Mac и BSD, поддерживает извлечение zip-архивов из команды tar

tar -xvf foo.zip

tar --version
bsdtar 2.8.3 - libarchive 2.8.3

Debian / RHEL 

Архив tar, который поставляется с Ubuntu и другими, не поддерживает извлечение zip-файлов. Лучшим вариантом будет scp файл на машину с установленной zip.

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

Тест дыма

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

Обновить 

Переписан ответ, чтобы уточнить, что tar -xvf работает только с ОС bsd. Хотя это хорошая информация, в любом случае он не будет работать в этом сценарии.


0
2017-08-10 20:25



что делает -zxvf? - johnnietheblack
когда я пытаюсь это сделать, я получаю tar: это не похоже на tar tar tar: переход к следующему заголовку ... означает ли это, что он не прошел или все еще продолжается? - johnnietheblack
tar способность обрабатывать zip-файлы будет расширением Ubuntu tar (т. е. GNU tar), похоже, не обеспечивает. -z для файлов gzipped, а не для zipped (если это не последнее расширение). - jlliagre
это означает, что если я загружу gzip, это сработает? - johnnietheblack
Это будет, но это не ваш вопрос ;-) - jlliagre