Дата:2012-10-31
Если Вы работаете в командной строке 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
Комментарии к статье:
Добавить комментарий