Как вы уже догадались, users
, who
и w
в основном делают одно и то же и отличаются только своими параметрами и форматированием вывода.
dpkg-query: no path found matching pattern /usr/bin/bash
означает, что посылка не отправляется/usr/bin/bash
(напрямую ). dpkg -S
ищет содержимое пакета в том виде, в котором оно было отправлено, игнорируя альтернативы, символические ссылки и т. д.
dpkg -S /bin/bash
найдет пакет, потому что он отправлен /bin/bash
.
См. также:
$ dpkg -L bash|grep bin/bash
/bin/bash
/usr/bin/bashbug
То же самое относится к cat
и ls
— они поставляются в /bin
. Наилучший подход при поиске команды в этой ситуации — искать ее с префиксомbin/
:
$ dpkg -S bin/bash
bash: /usr/bin/bashbug
bash: /bin/bash
ftp
— это в /usr/bin
, но это альтернатива; чтобы найти это, используйтеreadlink
:
$ dpkg -S $(readlink -f /usr/bin/ftp)
ftp: /usr/bin/netkit-ftp