Для поиска необходого файла в системе 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
Программа довольно быстро позволила получить больше того, что предполагалось.