Ich kann (irgendwie) ein Skript ausführen:
$ assemble.sh file
... [output]
Aber which
kann es nicht finden:
$ 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:.
- Wie ist das möglich?
- Wie finde ich heraus, wo sich diese Datei befindet?
Ich benutze Bash.
assemble.sh
in Ihrem aktuellen Verzeichnis?alias
Antworten:
Verwenden Sie diesen Befehl:
type assemble.sh
Es funktioniert in einer Vielzahl von Muscheln und zeigt nur das erste Ergebnis.
quelle
type assemble.sh
, was portabel ist (und nur die erste Übereinstimmung anzeigt, wohingegentype -a
es sich um ein ksh / bash-Konstrukt handelt, das alle Übereinstimmungen anzeigt ).Oder teilen Sie den Pfad und verwenden Sie ihn bei der Suche - die erste Übereinstimmung sollte die Lösung sein
type
ist natürlich einfacher.quelle
find
Möglicherweise verwenden Sie bash, aber die Syntax der
which
Ausgabe zeigt, dass Sie diewhich
in csh geschriebene alte verwenden . Der PATH wird in Klammern angegeben, und die Verzeichnisse in PATH haben Einträge wie/opt/SUNWspro/bin
und,/usr/ccs/bin
die nur in Solaris sinnvoll sind. Das ist konsequent: Solaris verwendete die cshwhich
.Hier ist meine Vermutung: Sie haben einen PATH für Bash und einen anderen für CSH. Dies könnte ein Systemproblem sein. Wie ich mich erinnere, speichert Solaris die Dateien / etc / profile und / etc / cshrc für die systemweite PATH-Einstellung. Diese beiden Initialisierungsdateien können unterschiedliche PATH-Variablen für unterschiedliche Shells festlegen. Geben Sie unter bash "echo $ PATH" ein und prüfen Sie, ob es mit dem übereinstimmt, was der
which
Befehl als PATH-Zeichenfolge ausgibt.quelle
Die Info
quelle
ASSEMBLE=$(PATH=/usr/bin:/usr/local/opt/coreutils/libexec/gnubin command -v assemble.sh)
Mit können
locate assemble.sh
Sie den Speicherort der Datei ermitteln.quelle
assemble.sh
, was hier irrelevant ist.locate
hätte , würde er auch den Ort der Datei finden, die er haben möchte.assemble.sh
ist kein so gebräuchlicher Dateiname, daher wird er die Datei wahrscheinlich leicht finden (was das OP verlangt).updatedb
vorherlocate
Ergebnisse zeigen?updatedb
wird es täglich als Cron-Job ausgeführt, aber Sie müssen es möglicherweise erzwingen, wenn die Datei sehr aktuell ist.