Comment puis-je exécuter un fichier sans me donner les autorisations d'exécution (avec chmod u+x
) pour lui?
Si j'essaie de cocher la case «Autoriser l'exécution du fichier en tant que programme», la coche est immédiatement supprimée.
Comment puis-je exécuter un fichier sans me donner les autorisations d'exécution (avec chmod u+x
) pour lui?
Si j'essaie de cocher la case «Autoriser l'exécution du fichier en tant que programme», la coche est immédiatement supprimée.
Réponses:
Vérifier la propriété du fichier
Veuillez le faire avant toute autre chose (sauf si vous êtes sûr de posséder le fichier).
Vérifiez et assurez-vous que vous possédez le fichier que vous essayez d'exécuter avec l'une des méthodes suivantes.
Graphique
Ligne de commande
Exécutez cette commande dans un terminal
You don't own the file
", voir "Modifier la propriété du fichier" ci-dessous.Changer la propriété du fichier
Exécutez cette commande dans un terminal
Fichiers exécutables
Une réponse que j'ai trouvée à partir d'un commentaire de Lekensteyn sur une réponse à une question sur
chmod
les partitions NTFS qui, je pense, mérite ses propres questions et réponses, tout à l'honneur de Lekensteyn.Utilisez cette commande pour les fichiers exécutables (en les remplaçant
/path/to/executable
par le chemin correct):Fichiers exécutables 64 bits:
Fichiers exécutables 32 bits:
Si ce qui précède ne fonctionne pas (ou déclenche des erreurs de fichier introuvable), essayez de l'utiliser avant la commande ci-dessus
Toutes les commandes ci-dessus ne fonctionneront pas pour les scripts basés sur du texte (Bash, Python, Perl, etc.), voir ci-dessous.
Vérifier si un programme est 64 ou 32 bits
Utilisez cette commande pour savoir si un exécutable est de 32 (
x86
) ou 64 (x86-64
) bitsSi cela dit
i386:x86-64
, c'est 64 bits. S'il diti386
seulement, c'est 32 bits.Scripts
Pour les scripts basés sur du texte (Bash, Python, Perl, etc.), vous devez utiliser la commande spécifiée dans la première
#!
ligne du fichier.Par exemple, si la première ligne du fichier est
puis exécutez ces commandes dans un terminal (en les remplaçant
/path/to/file
par le chemin correct).jar
Fichiers JavaPour les fichiers jar exécutables Java, vous pouvez simplement utiliser ces commandes (en les remplaçant
/path/to/jar
par le chemin correct):Quand tu n'as pas besoin
cd "$(dirname /path/to/file)"
Ce sont des circonstances possibles où vous n'aurez pas besoin d'utiliser
cd "$(dirname /path/to/file)"
avant d'exécuter le programme avec n'importe quelle méthode: Si au moins une est vraie, vous n'aurez pas besoin encd
premier.apt-get
)cd
(ou équivalent) pour passer à un chemin absolu avant d' effectuer des opérations de fichiers ( par exemple:cd "$(dirname "$0")"
)./
ou commençant sans barre oblique)En cas de doute, ajoutez
cd "$(dirname "$0")"
(ou l'équivalent) en haut du script (le cas échéant) ou utilisezcd "$(dirname /path/to/file)"
quand même.la source
S'il s'agit d'un script shell, vous pouvez le "source" à partir d'un autre script shell, c'est-à-dire:
Le "$ @" ajoute les paramètres de ligne de commande, si nécessaire.
Cela dit, ce n'est probablement pas la meilleure solution pour le problème sous-jacent, mais nous n'en savons pas assez sur ce problème pour proposer des alternatives.
la source
bash script $@