2017-09-26 1 views
0

J'ai un énorme dossier dans un système Linux. En son sein, j'ai une archive zip qui contient un couple de scripts shell. J'ai besoin d'exécuter ces scripts shell, mais le défi est que je n'ai pas accès en écriture à ce dossier. De plus, je ne peux pas non plus le déplacer dans un autre répertoire, car l'emplacement de ce fichier est critique pour son exécution. Cela ne fonctionnera pas dans un autre répertoire.Exécuter un script shell dans une archive zip

Existe-t-il un moyen d'exécuter le script shell à partir de l'archive zip sans l'extraire?

Répondre

2

Vous pouvez décompresser un fichier spécifique en spécifiant simplement le chemin après le fichier zip:

$ unzip c.zip a.sh 
Archive: c.zip 
extracting: a.sh 

Dans cette commande a.sh est le chemin vers le script que vous voulez exécuter.

Vous pouvez imprimer le contenu stdout avec le paramètre -p:

$ unzip -p c.zip a.sh 
#!/bin/sh 

echo "this is a.sh; it is now $(date)" 

Et enfin, vous pouvez ensuite conduit ce à sh pour l'exécuter:

$ unzip -p c.zip a.sh | sh 
this is a.sh; it is now Tue Sep 26 11:02:28 BST 2017 

Notez que pas mal de scripts shell Supposons bash, donc vous pouvez vouloir le diriger vers bash au lieu de sh, selon le script.