Wie finde ich den Pfad zu einer ausführbaren Datei in OSX?

46

Gibt es einen Befehl, mit dem ich den Pfad zu einer ausführbaren Datei leicht finden kann? Ich suche nach Identifikation auf meinem lokalen Rechner - so etwas wie pwd?

pwd identify
=> /usr/local/bin/identify
Codebeef
quelle

Antworten:

60

which Durchsucht Ihren Pfad nach den von Ihnen angegebenen Argumenten. Diese finden Sie auf nahezu jedem BSD- oder SysV-UNIX-System

moriarty:~ dave$ which bash true false
/bin/bash
/usr/bin/true
/usr/bin/false
Dave Cheney
quelle
1
Der whichBefehl funktioniert jedoch im Allgemeinen nicht, um diese Art von Arbeit zu erledigen. Siehe diese Fragen
Antworten zu
6
Gibt unter OSX whichkeine Ergebnisse für ein benutzerdefiniertes Skript aus $PATH. typetut.
wisbucky
17

Wenn Sie die integrierte Bash-Funktion verwenden type, werden alle Positionen (im Pfad) für einen Befehl angezeigt :

$ type -a ls
ls is aliased to `ls --color=always'
ls is /bin/ls

$ type -a printf
printf is a shell builtin
printf is /usr/bin/printf

$ type -a touch
touch is /usr/bin/touch
touch is /bin/touch

Wenn der Befehl eine Funktion ist, wird die Funktionsdefinition aufgelistet:

$ type -a somefunc
somefunc is a function
somefunc ()
{
    echo "hello, world"
}

Diese Beispiele stammen von einem Ubuntu-System, die Ergebnisse für OS X sind jedoch ähnlich.

Dennis Williamson
quelle
4
Zeigt unter OSX whichden Pfad für ein benutzerdefiniertes Skript (das sich in befindet $PATH) nicht an. typetut.
wisbucky
3

Versuchen Sie, "Identifizieren" zu lokalisieren.

Chopper3
quelle
5
Dies funktioniert, wenn "welches" nicht, weil die ausführbare Datei nicht in Ihrem aktuellen Pfad ist, sondern auch dazu neigt, eine Menge Dinge auszuspucken, die Sie nicht wollen. Erster Pfadfilter: "locate command | grep bin". Verwenden Sie zuerst "which".
Dmckee
0

Es kommt darauf an, wonach Sie suchen. Die meisten Dienstprogramme hängen von der Pfadvariablen ab. Wenn Sie jedoch nach etwas suchen, das sich in Ihrem Pfad befindet, müssen Sie wahrscheinlich nicht wirklich wissen, wo es sich befindet, es sei denn, es gibt mehrere Kopien derselben ausführbaren Datei.

Dies gilt jedoch nicht für die meisten Dinge, die unter OSX ausgeführt werden, da sie nicht ganz wie normale Linux- / Unix-Binärdateien ausgeführt werden. Hier sind einige Methoden, um Dinge zu finden, die nicht in Ihrer Pfadangabe enthalten sind.

finden:

sudo find / -name <FILE>

Dies findet alles, was auf dem Dateisystem existiert, das Sie als erstes Argument angeben. Es muss als root ausgeführt werden, um private Verzeichnisse zu durchsuchen. Es werden auch Platzhalterzeichen unterstützt, wenn Sie den Namen nicht genau kennen.

Terminal:

Wenn Sie die Datei im Finder haben, können Sie ein Terminalfenster öffnen und die Datei dort ablegen. Terminal zeigt dann den vollständigen Pfad zur Datei an.

Scheinwerfer:

Ziemlich selbsterklärend. Sie spenden Prozessorzyklen, damit ein Index Ihrer Datei erstellt werden kann

keegan2149
quelle