Яка різниця між which
і whereis
?
which
та whereis
надання різних результатів (на macOS Sierra) apple.stackexchange.com/questions/259047/…
type
вищим. Він також знає про визначені псевдоніми, функції тощо
Яка різниця між which
і whereis
?
which
та whereis
надання різних результатів (на macOS Sierra) apple.stackexchange.com/questions/259047/…
type
вищим. Він також знає про визначені псевдоніми, функції тощо
Відповіді:
Як щодо вивчення whereis
та which
використання whatis
?
$ whatis which
which (1) - shows the full path of (shell) commands
$ whatis whereis
whereis (1) - locate the binary, source, and manual page files for a command
В основному, whereis
пошук "можливо корисних" файлів, тоді як which
лише пошук виконуваних файлів.
Я рідко використовую whereis
. З іншого боку, which
дуже корисно, особливо в сценаріях. which
це відповідь на наступне запитання: Звідки береться ця команда?
$ which ls
/bin/ls
$ whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.bz2 /usr/share/man/man1/ls.1.bz2
whereis
, а не той, для якого which
.
which
показує фактичний шлях. Ви впевнені, що шлях, на який вказує, which
не є просто символьним посиланням на вказаний шлях whereis
? Можливо, це псевдонім оболонки. В баш, спробуйте бігти type your_cmd_here
.
whereis
здійснює пошук у стандартних * nix місцях для вказаної команди.
which
здійснює пошук у вашому користувальницькому PATH (який може включати деякі місця, де здійснюється пошук, а може не включати інші - він також може включати деякі місця, які whereis
не здійснюють пошук, якщо ви були додані до вашої PATH)
Цитуючи свої чоловічі сторінки:
де :
де знаходиться джерельний / двійковий та посібники розділи для вказаних файлів.
Наприклад :
$ whereis php
php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz
тобто виконуваний файл "php" та деякі інші елементи (наприклад, man man).
і які :
який повертає імена файлів, які були б виконані в поточному середовищі
Наприклад :
$ which php
/usr/bin/php
тобто виконується тільки "php".
які шукають виконувані файли в каталогах, визначених змінною середовища PATH. І якщо це з'ясується, буде надруковано повне ім'я цього виконуваного файлу.
$ what ls
/ bin / ls
$ what ifconfig
$ # Немає результатів, оскільки ifconfig існує лише у PATH кореня.
в якому пошук виконуваних файлів, вихідних файлів та сторінок керівництва за допомогою автоматичної бази даних, створеної системою.
$ де менше
менше: / bin / менше / usr / bin / менше / usr / bin / X11 / менше /usr/share/man/man1/less.1.gz
Але мені здається , що WhereIs і місцезнаходження не використовувати ту ж базу даних. Коли я встановив програмне забезпечення , а потім використовував WhereIs і знайти відразу шукати для цього програмного забезпечення. Результатом є те , що WhereIs може знайти деякі файли , пов'язані з цим програмним забезпеченням , поки знайти не вдалося. Вони справді використовують різні бази даних? Як працює база даних? - Ну, а як із відмовою бути педантом? :)