Я делаю это так:
find . -type f -exec egrep -i «поисковая фраза» /dev/null {} \;
и все находится, стоит только подождать…
Вместо этой команды, можно использовать небольшой скрипт:
#!/bin/sh
#
if test $# = 0 -o «$1» = «-h» -o «$1» = «—help» ; then
echo ‘ grepfind — recursively descends directories and egrep all files ‘
echo »
echo ‘ Usage: grepfind [—help][-h][start_directory] egrep_search_pattern’
echo »
echo ‘ The current directory is used as start_directory if parameter’
echo ‘ start_directory is omitted. The search is case insensitive.’
echo ‘ Multiple occurrences of control characters are replaced by a single’
echo ‘ space. This makes it possible to grep around in files that contain’
echo ‘ binary data and strings without setting the terminal accidently ‘
echo ‘ to graphics mode.’
echo »
echo ‘ Example: grepfind /home «hello world» ‘
else
if [ «$2» = «» ]; then
find . -type f -exec egrep -i «$1» /dev/null {} \; | sed -e ‘s/[^ -~][^ -~]*/ /g’
else
if [ -d «$1» ];then
find $1 -type f -exec egrep -i «$2» /dev/null {} \; | sed -e ‘s/[^ -~][^ -~]*/ /g’
else
echo «ERROR: $1 is not a directory»
fi
fi
fi
#__END__OF_grepfind
Так вы сбережете вашу память. Сохраните его как grepfind , положите в /usr/bin и будет вам счастье. Не забудьте дать права на выполнение.
Запускать так:
grepfind /папка/для/поиска «слово для поиска»
или так
grepfind «слово для поиска»
Очень удобная функция. А можно это как-то через locate сделать?
через locate не получится. Читайте man locate
Эта команда очень упрощенная. Не подойдет :)
Да, кстати если на сайт посадить php шелл, то эта ф-я на порядок ускорит исследование сайтов на предмет взлома :-))
Т.е. штука крайне удобная.
Комментарий не совсем в тему? :)