J'ai un exécutable qui est placé sur ma machine Linux de sorte que la longueur du chemin vers l'exécutable est de 107 caractères. J'ai trouvé le nombre de caractères en utilisant la commande echo -n "/path/to/the/executable" | wc -c -m
. Lorsque je tente d'exécuter le fichier exécutable avec son chemin complet, je reçois l'erreur suivante:Dash, y at-il une limitation sur le chemin de fichier
sh: 1: /subpath/to/the/executable: not found
J'ai vérifié la longueur /subpath/to/the/executable
et il est de 81 caractères. Et si je place mon exécutable de sorte que sa longueur de chemin est inférieure à 81 caractères, je ne reçois pas le sh error
ci-dessus.
J'ai fait quelques recherches et j'ai trouvé que la limite du chemin du fichier sur Linux env est de 255 caractères. Je n'ai pas pu trouver si le tableau de bord ou le shell avait des limitations sur le chemin du fichier. Sur ma machine/bin/sh est un lien symbolique vers/bin/dash. Est-ce que quelqu'un peut expliquer cette limite de 81 caractères sur le chemin de fichier imposé par tiret?
Y a-t-il un moyen d'augmenter la limite?
est-ce que '/ subpath /' existe et corrige? qu'est-ce que c'est, dossier dans/(racine) ou sous-dossier? (pourquoi vous vous référez alors à un chemin complet?) –
Je soupçonne que les chemins réels impliqués sont plus pertinents que leurs longueurs. – chepner
@OleksandrKravchuk, '/ subpath /' n'existe pas. Il s'agit des 81 premiers caractères de '/ chemin/vers/le/exécutable'. L'exécutable est placé dans divers répertoires et je peux changer mon répertoire courant et exécuter le fichier en tant que './File' mais je l'exécute à partir du code java et je dois donc fournir le chemin complet. – user2888308