Поиск данных в Linux

Автор: Admin

Дата:2012-10-31

Поиск файлов и папок (Find, Locate, Grep)

Если Вы работаете в командной строке Linux, то привыкли иметь дело с большим количеством файлов и папок, которые необходимо сортировать, производить поиск нужного файла или папки.

Поиск данных.

Поиск в файлах.

В процессе работы у нас часто возникает необходимость найти что-либо в файле - это может быть лог файл, например почтового агента postfix. Для этих целей можно воспользоваться командой grep

Пример:
# grep blocked maillog

Oct 14 08:35:01 mail postfix/smtpd[13063]: NOQUEUE: reject: RCPT from unknown[59.103.198.195]: 554 5.7.1 Service unavailable; Client host [59.103.198.195] blocked using bl.spamcop.net; Blocked - see http://www.spamcop.net/bl.shtml?59.103.198.195; from=<retellsbc@autorambler.ru> to=<business@--------.ru> proto=ESMTP helo=<[59.103.198.195]>
Oct 14 08:35:55 mail postfix/smtpd[13070]: NOQUEUE: reject: RCPT from unknown[113.162.220.10]: 554 5.7.1 Service unavailable; Client host [113.162.220.10] blocked using bl.spamcop.net; Blocked - see http://www.spamcop.net/bl.shtml?113.162.220.10; from=<giggingug7@inbox.ru> to=<edu@---------.ru> proto=ESMTP helo=<dynamic.vdc.vn>

В данном примере мы вывели  все сообщения со статусом blocked.

Здесь выводится номер строки 
# grep -n ty file
3:ty
4:ty
6:ty

Всего строк с совпадениями
grep -c ty file
3

Параметр -e задает несколько шаблонов для поиска
# grep -e шаблон_1 -e шаблон_2 file

Поиск в файловой системе.

Команда Find

Эта команда ищет по имени файла и просматривает те директории, которые вы зададите для поиска в данном случае она ище во всех каталогах
# find / -name file
/var/log/file
/usr/lib/perl5/vendor_perl/5.8.8/URI/file
/usr/bin/file
/usr/share/file

Здесь выводится весь список с совпадением слова file
#find / -name "*file*" -print
.bash_profile
metafiles

У команды find множество всяких полезных ключей:

# find -mtime -1  Поиска файла с изменениями меньше чем 1 день (+1 - больше)
-size n - размер файла
# find / -size -50k  Ищет файлы меньше 50 кб
# find / -size +50M Ищет больше 50 мб
# find .  -perm 755 - ищет файлы с правами доступа 755
# find -user root - поиск файлов принадлежащих пользователю

Команда locate

В отличии от команды find, locate производит поиск на много быстрее, за счет наличия свой базы, которая обновляется каждую ночь

# locate file
/var/named/chroot/var/named/chroot/proc/sys/fs/file-max
/var/named/chroot/var/named/chroot/proc/sys/fs/file-nr


Другие команды Linux

Количество просмотров: 12988

Комментарии к статье:

Добавить комментарий

Введите сумму с картинки

© Plutonit.ru - Администрирование, настройка Linux и Windows 2009 - 2024