Jak znaleźć ścieżkę do pliku wykonywalnego w OSX


46

Czy istnieje polecenie, którego można użyć, aby łatwo znaleźć ścieżkę do pliku wykonywalnego? Szukam identyfikatora na mojej lokalnej maszynie - coś w stylu pwd?

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

Odpowiedzi:


60

which przeszuka twoją ścieżkę w poszukiwaniu dostarczonych argumentów, można ją znaleźć w prawie każdym systemie BSD lub SysV UNIX

moriarty:~ dave$ which bash true false
/bin/bash
/usr/bin/true
/usr/bin/false

1
whichKomenda choć praca będzie na ogół nie jest właściwym narzędziem do wykorzystania zrobić ten rodzaj pracy. Zobacz poniższe pytania i odpowiedzi dotyczące U&L: unix.stackexchange.com/questions/85249/…
slm

6
W OSX whichnie daje żadnych wyników dla skryptu niestandardowego (który jest w $PATH). typerobi.
wisbucky 15.04.16

17

Jeśli użyjesz wbudowanego basha type, wyświetli on wszystkie lokalizacje (w ścieżce) dla polecenia:

$ 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

Jeśli polecenie jest funkcją, wyświetli się definicja funkcji:

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

Te przykłady pochodzą z systemu Ubuntu, ale wyniki będą podobne dla OS X.


4
W OSX whichnie wyświetla ścieżki do niestandardowego skryptu (który jest w $PATH). typerobi.
wisbucky 15.04.16

3

spróbuj „zlokalizuj zidentyfikować”


5
Działa to wtedy, gdy „który” nie, ponieważ plik wykonywalny nie znajduje się w bieżącej ŚCIEŻCE, ale ma również tendencję do wyrzucania wielu rzeczy, których nie chcesz. Filtr pierwszej ścieżki: „locate command | grep bin”. Najpierw użyj „które”.
dmckee

0

To zależy od tego, czego szukasz. Większość narzędzi zależy od zmiennej ścieżki. Jeśli jednak to, czego szukasz, jest na twojej drodze, to tak naprawdę nie musisz wiedzieć, gdzie to jest, chyba że istnieje wiele kopii tego samego pliku wykonywalnego.

Nie dotyczy to większości rzeczy działających w OSX, ponieważ nie działają one tak jak normalne pliki binarne linux / unix. Oto kilka metod znajdowania rzeczy, których nie ma w instrukcji path.

odnaleźć:

sudo find / -name <FILE>

Znajduje to wszystko, co istnieje w systemie plików, który podajesz jako pierwszy argument. Musi działać jako root, aby przeszukiwać prywatne katalogi. Obsługuje również symbole wieloznaczne, jeśli nie jesteś całkowicie pewien nazwy.

Terminal:

Jeśli masz plik w wyszukiwarce, możesz otworzyć okno terminala i upuścić plik w nim. Terminal następnie wyświetli pełną ścieżkę do pliku.

Reflektor:

Dość oczywiste. Przekazujesz cykle procesora, aby zachować indeks twojego fi

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.