Для поиска необходого файла в системе Linux нет необходимости вручную рыться во множестве каталогов, так как для этого существуют быстрые и эффективные методы поиска.
Содержание
Команда which
Команда which
обычно используется для быстрого поиска программ. Она просто выполняет поиск по переменной окружения PATH
и возвращает первый найденный результат, а также путь к нему:
$ which wvdial
/usr/bin/wvdial
Из примера видно, что wvdial
находится в каталоге /usr/bin
. Команда which
является достаточно ограниченной, так как выполняет поиск только в вашей переменной PATH
.
Команда whereis
Команда whereis
работает примерно как и which
, однако она также ищет страницы руководства и файлы с исходными текстами. Поиск wvdial
с помощью whereis
должен дать следущее:
$ whereis wvdial
wvdial: /usr/bin/wvdial /etc/wvdial.conf /etc/wvdial.conf-sample /usr/X11R6/bin/wvdial /usr/bin/X11/wvdial /usr/X11/bin/wvdial /usr/man/man1/wvdial.1.gz /usr/share/man/man1/wvdial.1.gz /usr/X11/man/man1/wvdial.1.gz
команда whereis
сообщила нам не только, где находится программа, а также и местонахождение документации к ней. Однако и эта команда всё ещё ограничена.
Команда find
Команда find
позволяет пользователю выполнять поиск по файловой системе с помощью большого набора поисковых аргументов. Пользователи могут искать файлы по именам с использованием шаблонов подстановки, диапазонов времени их изменения или создания и других расширенных свойств. Например, чтобы найти в системе файл xinitrc
, можно воспользоваться следующей командой (/dev/null
позволит не выводить на экран многочисленные сообщения “Отказано в доступе” при использовании команды от обычного пользователя):
$ find / .name xinitrc 2> /dev/null
/etc/X11/xinit/xinitrc
/etc/xfce/xdg/xfce4/xinitrc
Команда locate
Команда locate
выполняет поиск по всей файловой системе примерно как и find
, однако поиск ведётся по базе данных, а не по самой файловой системе. Обновление базы данных выполняется автоматически каждое утро, чтобы у вас был более свежий список файлов своей системы. Можно вручную запустить updatedb
для обновления базы данных locate
(перед этим необходимо получить права root
с помощью su
). Вот пример работы locate
:
$ su # Получаем права root
Password: # Вводим пароль
# updatedb # Обновляем базу данных
# exit # Теперь права root не нужны
exit
~$ locate xinitrc
/etc/X11/xinit/xinitrc
/etc/X11/xinit/xinitrc.kde
/etc/X11/xinit/xinitrc.twm
/etc/X11/xinit/xinitrc.fvwm2
/etc/X11/xinit/xinitrc.icewm
/etc/X11/xinit/xinitrc.xfce
/etc/X11/xinit/xinitrc.blackbox
/etc/X11/xinit/xinitrc.wmaker
/etc/X11/xinit/xinitrc.fluxbox
/etc/xfce/xdg/xfce4/xinitrc
/home/ftp/pub/ALTLinux/Master/2.4/ALTLinux/RPMS.main/xinitrc-2.4.22-alt1.i586.rpm
Программа довольно быстро позволила получить больше того, что предполагалось.