Existe-t-il d'autres options pour décompresser un fichier dans Ubuntu en plus de «décompresser»? [fermé]

11

Mon administrateur système est inaccessible en ce moment, et j'ai un fichier compressé sur le serveur que je voudrais décompresser ... cependant, nous n'avons actuellement pas de zip et de décompression installé, et je n'ai pas d'accès root pour les installer. ..

Suis-je complètement à court d'options? Y a-t-il d'autres choses qui peuvent dézipper ce fichier?

johnnietheblack
la source
Le tar n'est-il pas installé? tar -x
spuder
vient d'essayer tar -x file.zip et il semble faire quelque chose ...
johnnietheblack
@spuder, vous devriez laisser une réponse au cas où cela fonctionnerait, et je vous voterai positivement
johnnietheblack

Réponses:

10

Je n'ai pas essayé cela, mais il y a un zipfilemodule dans la bibliothèque standard de Python depuis la version 1.6, et depuis la version 2.6 a une extractallméthode

Vous devriez pouvoir faire quelque chose comme:

  1. Créez un fichier avec le contenu suivant (modifiez-le pour l'adapter à votre cas d'utilisation).
  2. Enregistrez le fichier sous "unzipfile.py"
  3. Exécuter avec python unzipfile.py

Et ça va extraire test.zipà /home/user/directory.

import zipfile

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

Source: https://stackoverflow.com/a/9432315/167299

Sinon, BusyBox contient un "module" de décompression, et si vous pouviez télécharger et exécuter la BusyBox liée de manière statique, alors vous pourriez l'utiliser pour décompresser des choses.

Tom O'Connor
la source
j'ai essayé la première partie de ceci et j'ai obtenu: Le programme 'import' peut être trouvé dans les paquets suivants: * imagemagick * graphicsmagick-imagemagick-compat - btw ... je ne vous ai pas
downvote
Oh. Vous savez que vous devez l'exécuter via Python?
Tom O'Connor
1
SENSATIONNEL. on dirait que ça a fonctionné .... J'ai trébuché avec succès en mode interactif!
johnnietheblack
2
Bienvenue dans Python. C'est génial.
Tom O'Connor
2
Vous pouvez maintenant simplement appeler le module directement à partir de la ligne de commande python -m zipfile -e monty.zip target-dir/(voir docs.python.org/2/library/zipfile.html#command-line-interface )
Peter Gibson
11

Si vous avez javainstallé, la jarcommande peut décompresser un fichier compressé:

jar xvf file.zip 

Notez que vous pouvez installer java sans accès root: http://docs.oracle.com/javase/7/docs/webnotes/install/linux/linux-jdk.html

jlliagre
la source
1
Aujourd'hui j'ai appris.
Tom O'Connor
Le programme 'jar' peut être trouvé dans les packages suivants: * default-jdk * fastjar * gcj-4.6-jdk * openjdk-6-jdk * gcj-4.5-jdk * openjdk-7-jdk Demandez à votre administrateur d'installer l'un des les :(
johnnietheblack
1
Voir ma mise à jour de réponse.
jlliagre
Je suis un peu tenté d'installer quoi que ce soit sur le serveur, par crainte de la colère de mon administrateur système, mais j'essaierai certainement cela si besoin est.
johnnietheblack
2

BSD / Mac OSX

L'utilitaire tar fourni avec les dérivés Mac et BSD prend en charge l'extraction des archives zip à partir de la commande tar

tar -xvf foo.zip

tar --version
bsdtar 2.8.3 - libarchive 2.8.3

Debian / RHEL

L'archive tar fournie avec Ubuntu et d'autres ne prend pas en charge l'extraction de fichiers zip. La meilleure option sera de scp le fichier sur une machine avec zip installé.

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

Test de fumée

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

Mise à jour

Réécriture de la réponse pour clarifier que tar -xvf ne fonctionne que sur les OS bsd. Bien que ce soit une bonne information, cela ne fonctionnera pas dans ce scénario après tout.

spuder
la source
que fait -zxvf?
johnnietheblack
quand j'essaye, j'obtiens tar: cela ne ressemble pas à une archive tar tar: sauter à l'en-tête suivant ... cela signifie-t-il qu'il a échoué ou qu'il continue?
johnnietheblack
tarla capacité de traiter les fichiers zip serait une extension que Ubuntu tar (ie GNU tar) ne semble pas fournir. -zest pour les fichiers compressés, pas ceux compressés (sauf s'il s'agit d'une extension très récente).
jlliagre
cela signifie-t-il que si je télécharge un gzip, cela fonctionnerait?
johnnietheblack
Ce sera le cas, mais ce n'est pas votre question ;-)
jlliagre
2

Je ne crois pas qu'il existe d'autres façons de décompresser le fichier sur un système sans unzip, mais vous pouvez envoyer le fichier vers un autre système Linux (avec décompression installée ou accès root disponible), décompressez le fichier là-bas et - si nécessaire - envoyez le décompressé fichier vers le serveur d'origine.

La commande pour envoyer un fichier d'un serveur à un autre est scp. La syntaxe pour envoyer le fichier est:

scp <filename> <username>@<otherhostname>:<portnumber><fullpathtolocation>
e.g.: scp file.zip  [email protected]:2222/home/user/ 

J'espère que cela t'aides!

Luc van Donkersgoed
la source
0

Copiez le fichier sur une autre machine, décompressez et recopiez.

dmourati
la source