Файл должен принадлежать и записываемый корнем. Также удостоверьтесь, что Ваша спецификация времени корректна - * * * * *
реальный?
Можно объединить два шаблона (или в более общем плане несколько критериев) в find
.
find . -ipath '*sitesearch*' -ipath '*demo*'
или если Вы предпочитаете regex синтаксис
find . -iregex '.*sitesearch.*' -iregex '.*demo.*'
“ls
с полным путем на каждой строке” (плюс пересекающие каталоги рекурсивно, который очевидно необходим здесь) был бы find
. В то время как можно работать find | grep -i demo | grep -i sitesearch
, выполнение всего этого с find
вероятно, будет явно быстрее.
Если Вы делаете это много, можно сделать это функцией (вставьте его Ваш ~/.kshrc
или ~/.bashrc
или ~/.zshrc
):
findallof () {
typeset -a pred
pred=(.)
typeset x
for x do
pred=("${pred[@]}" -ipath "*$x*")
done
find "${pred[@]}"
}
Обратите внимание также, что можно искать файлы по имени с locate
(проверьте страницу справочника в своей системе, поскольку существует несколько реализаций даже на Linux).
locate -i sitesearch | grep -i demo
Это может быть быстрее, чем просмотр большого дерева каталогов, потому что locate
запрашивает индекс (хотя поиски без учета регистра имеют тенденцию не быть этим быстро). Однако индекс обычно восстанавливается только каждую ночь, таким образом, он не покажет файлы, созданные сегодня. Файлы, которые не находятся в публично читаемом каталоге, могут или не могут быть индексированы в зависимости от реализации (проверка, если /usr/bin/locate
корневой двоичный файл setuid: если это, частные файлы индексируются и locate
управляйте показывает Вам только файлы, к которым можно получить доступ).
-ipath
вместо-iname
или это не найдетsome/path/SiteSearch/demo/index.html
как grep был бы. Также отсутствие*
после демонстрации. – frostschutz 06.04.2013, 03:33find . | grep -i demo | grep -i sitesearch
должен сделать задание также. Но Вашим решением является всего одна команда, таким образом, это должно быть более хорошо. Вы знаете, как превратить его в функции так, чтобы мы могли просто сказатьfind1 sitesearch
илиfind2 demo sitesearch
или если лучше мы не должны говоритьfind1
илиfind2
но простоfindallof
– nopole 06.04.2013, 05:10.
послеfind
? GNU находит, не нуждается в нем, но я думаю, что BSD находят, делает. – Gilles 'SO- stop being evil' 07.04.2013, 16:51