You type `mytool` and want to know exactly which executable file the shell will run, based on your current PATH. Which command answers that?
LPIC-1 Exam 101-500, objective 104. Devices, Linux filesystems, filesystem hierarchy standard easy
Draft — not checked yet. This question was written from the published exam objectives and cites the clause it comes from, but nobody has yet read it against that clause and signed for it.
It is kept out of search results and out of mock exams until they have. Read the source below before you take the answer as settled.
The options
Not correct find / -name mytool
Wrong for this question. find does a live scan of the whole tree and lists every match; it is slow here and still tells you nothing about which one PATH selects.
Not correct whereis mytool
Wrong for this question. whereis reports the binary, source and manual page locations it can find, searching a built-in list of standard directories as well as PATH, and it prints every match it turns up. It does not tell you which single one the shell would pick, and it can list binaries in directories that are not on your PATH at all.
Not correct locate mytool
Wrong. locate greps a prebuilt filename database for anything matching the pattern anywhere on disk, ignoring PATH and ignoring whether the match is even executable.
Correct which mytool
Correct. which walks the directories in $PATH in order and prints the first matching executable — the same search the shell performs.
Why
which resolves a command against $PATH exactly as the shell would. whereis looks in a standard set of locations (plus PATH) for the binary, its sources and its man page, and reports all of them. locate is a fast database lookup for filenames anywhere. find is a live, precise, slow search. Note that shell built-ins and aliases are invisible to which — for those, bash's `type` is the honest answer.
Where this comes from
- Cited
- LPI exam objective 104.7
- What it says
- Find system files using which, whereis, locate and find.
Practise this
Reading one question is not practice. The trainer will draw a set from objective 104 and space the ones you get wrong.