1 votes

Comment exécuter un fichier via grep

Je suis un utilisateur de base qui espère passer à un niveau intermédiaire. Ok, j'ai un fichier XAMPP(manager-linux-x64.run) qui lorsque je fais un

sudo ./manager-linux-x64.run

Ça marche. Donc, j'essayais d'être pro en faisant ceci depuis son répertoire

ls | grep manager-linux-x64.run | sudo xargs ./

Cela ne fonctionne pas. Il y a une erreur.

xargs: ./: Permission denied

Le fichier de sortie de manager-linux-x64.run est

manager-linux-x64.run: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, stripped

Ce que j'essaie essentiellement de faire est obtenir une liste de fichiers dans le répertoire , grep l'exécutable, de canaliser la sortie et de l'exécuter en utilisant ./manager-linux-x64.run puisque (sh,bash ne fonctionne pas sur le fichier .run).

De plus, existe-t-il une autre commande capable d'exécuter un .run lui-même ?

3voto

Samuel Points 1006

La réponse est un sous-shell. Essayez ceci :

realpath $(ls) | grep .run$ | xargs sh -c

Ou :

ls -d ./* | grep .run$ | xargs sh -c

Ceux-ci fonctionneront, mais il serait peut-être préférable d'utiliser trouver si ce que vous essayez de faire est d'exécuter un fichier lorsqu'il remplit certaines conditions.

find $PWD -maxdepth 1 -type f -name "*.run" -exec {} \;


Notes :

L'autorisation d'exécution du fichier doit être réglé . Changez avec chmod si nécessaire.

Un avertissement : les one-liners précédents tenteront d'exécuter tout ce qui leur correspond. Lire la suite point barre oblique :

"...Un utilisateur pourrait éliminer la nécessité de faire précéder les commandes d'une barre oblique (...) Cependant, cela n'est généralement pas conseillé pour des raisons de sûreté et de sécurité..."

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X