GNU/Linux >> Znalost Linux >  >> Linux

Shell - Jak najít adresář nějakého příkazu?

Pokud používáte Bash nebo zsh, použijte toto:

type -a lshw

To ukáže, zda je cíl vestavěný, funkce, alias nebo externí spustitelný soubor. Pokud je to druhé, zobrazí každé místo ve vašem PATH .

bash$ type -a lshw
lshw is /usr/bin/lshw
bash$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
bash$ zsh
zsh% type -a which
which is a shell builtin
which is /usr/bin/which

V Bash pro funkce type -a zobrazí také definici funkce. Můžete použít declare -f functionname udělat to samé (musíte to použít pro zsh, protože type -a ne).


Takhle:

which lshw

Chcete-li zobrazit všechny příkazy, které odpovídají vaší cestě:

which -a lshw 

PATH je proměnná prostředí a lze ji zobrazit pomocí příkazu echo:

echo $PATH

Je to seznam cest oddělených dvojtečkou ': '

which příkaz vám řekne, který soubor se spustí, když spustíte příkaz:

which lshw

někdy to, co získáte, je cesta k symbolickému odkazu; pokud chcete vysledovat odkaz na místo, kde se nachází skutečný spustitelný soubor, můžete použít readlink a vložte do něj výstup which :

readlink -f $(which lshw)

-f parametr instruuje readlink abyste pokračovali v rekurzivním sledování symbolického odkazu.

Zde je příklad z mého počítače:

$ which firefox
/usr/bin/firefox

$ readlink -f $(which firefox)
/usr/lib/firefox-3.6.3/firefox.sh

Linux
  1. CentOS / RHEL :Jak zjistit, který uživatel spouští konkrétní příkaz?

  2. Jak najdu svou verzi shellu pomocí příkazu Linux?

  3. Jak zjistit, ke kterému balíčku patří určitý příkaz na CentOS?

  1. Jak zjistit počet souborů v adresáři a podadresářích

  2. Jak pomocí příkazu cp v linuxovém shellu zkopíruji celý adresář do jiného adresáře?

  3. Jak odstranit všechny soubory v adresáři kromě některých?

  1. [Linux] :Jak vyloučit adresář při použití příkazu shellu „tar“.

  2. Jak integrovat příkaz MV po příkazu Najít?

  3. Jak spustit příkaz „najít“ pouze v aktuálním adresáři a ne v podadresářích