我的系统管理员现在无法联系到我,而且我在服务器上有一个压缩文件,我想解压它...但是,我们目前没有安装 zip 和 unzip,而且我没有 root 权限来安装它们...
我是不是完全没有选择了?还有其他东西可以解压这个文件吗?
答案1
我还没试过这个,但zipfile
从 1.6 版开始,Python 标准库中有一个模块,从 2.6 版开始,有一个extractall
方法
你应该可以做类似的事情:
- 创建一个包含以下内容的文件(编辑它以适合您的用例)。
- 将文件保存为“unzipfile.py”
- 使用 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,那么您就可以使用它来解压缩。
答案2
如果你已经java
安装,该jar
命令可以解压压缩文件:
jar xvf file.zip
请注意,您无需 root 权限即可安装 java:http://docs.oracle.com/javase/7/docs/webnotes/install/linux/linux-jdk.html
更新:OpenJDK 可作为tar.gz
存档下载到 Linux,无需 root 权限即可安装:http://jdk.java.net/17/
但是,Windows 版本是一个zip
文件,因此对该操作系统没有帮助......
答案3
BSD / Mac OSX
Mac 和 BSD 衍生产品附带的 tar 实用程序,支持从 tar 命令提取 zip 档案
tar -xvf foo.zip
tar --version
bsdtar 2.8.3 - libarchive 2.8.3
Debian / RHEL
Ubuntu 和其他系统自带的 tar 存档不支持提取 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 OS。虽然这是个好消息,但它毕竟在这种情况下不起作用。
答案4
将文件复制到另一台机器,解压,然后复制回来。