Je suis (en quelque sorte) capable d'exécuter un script:
$ assemble.sh file
... [output]
Mais which
je ne le trouve pas:
$ which assemble.sh
which: no assemble.sh in (/s/std/bin:/usr/afsws/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:/bin:/usr/bin:/usr/stat/bin:/usr/X11R6/bin:.
- Comment est-ce possible?
- Comment puis-je trouver où se trouve ce fichier?
J'utilise bash.
assemble.sh
dans votre répertoire actuel?alias
Réponses:
Utilisez cette commande:
type assemble.sh
Il fonctionne dans une variété de coques et ne montre que le premier résultat.
la source
type assemble.sh
, qui est portable (et ne montre que la première correspondance alors quetype -a
c'est une construction ksh / bash pour afficher toutes les correspondances).Ou divisez le chemin et utilisez-le dans la recherche - la première correspondance devrait être la solution
type
est bien sûr plus facile.la source
find
Vous utilisez peut-être bash, mais la syntaxe de la
which
sortie montre que vous utilisez l'ancienwhich
écrit en csh. Le PATH apparaît entre parenthèses et les répertoires de PATH ont des entrées comme/opt/SUNWspro/bin
et/usr/ccs/bin
qui n'ont de sens que dans Solaris. C'est cohérent: Solaris a utilisé le cshwhich
.Voici ma supposition: vous avez un CHEMIN pour bash et un autre pour csh. Cela pourrait être un problème système. Si je me souviens bien, Solaris conserve les fichiers / etc / profile et / etc / cshrc pour le paramètre PATH à l'échelle du système. Ces deux fichiers d'initialisation peuvent définir des variables PATH différentes pour différents shells. Faites "echo $ PATH" sous bash, et voyez si cela correspond à ce que la
which
commande affiche comme une chaîne PATH.la source
Info
la source
ASSEMBLE=$(PATH=/usr/bin:/usr/local/opt/coreutils/libexec/gnubin command -v assemble.sh)
Vous pouvez utiliser
locate assemble.sh
pour trouver l'emplacement du fichier.la source
assemble.sh
, ce qui n'est pas pertinent ici.locate
cela lui donnerait également l'emplacement de celui qu'il voulait.assemble.sh
n'est pas un nom de fichier commun, il trouvera donc probablement le fichier facilement (c'est ce que l'OP demande).updatedb
avantlocate
?updatedb
est généralement exécuté quotidiennement en tant que tâche cron, mais oui, vous devrez peut-être le forcer si le fichier est très récent.