Две более сложных функции оболочки. Я часто использую их при поиске материала в исходном коде или файлах конфигурации.
FFind() {
if [ -n "$1" ] ; then
if [ -n "$2" ] ; then
local testVar="$1"
shift
find . -type f \
-and '(' -not -path '*.git*' ')' \
-and '(' -not -path '*.svn*' ')' \
-and '(' -not -path '*.hg*' ')' \
-and '(' "$@" ')' \
-exec grep --color=always -I -i -F -H -n "${testVar}" {} ';'
else
find . -type f \
-and '(' -not -path '*.git*' ')' \
-and '(' -not -path '*.svn*' ')' \
-and '(' -not -path '*.hg*' ')' \
-exec grep --color=always -I -i -F -H -n "$1" {} ';'
fi
fi
}
EFind() {
if [ -n "$1" ] ; then
if [ -n "$2" ] ; then
local testVar="$1"
shift
find . -type f \
-and '(' -not -path '*.git*' ')' \
-and '(' -not -path '*.svn*' ')' \
-and '(' -not -path '*.hg*' ')' \
-and '(' "$@" ')' \
-exec grep --color=always -I -i -E -H -n -m 1 "${testVar}" {} ';'
else
find . -type f \
-and '(' -not -path '*.git*' ')' \
-and '(' -not -path '*.svn*' ')' \
-and '(' -not -path '*.hg*' ')' \
-exec grep --color=always -I -i -E -H -n -m 1 "$1" {} ';'
fi
fi
}
Использование:
FFind elephant
Рекурсивно поиски все текстовые файлы в текущем каталоге для строки elehant. Игнорирует файлы, созданные Subverion, мерзавцем или подвижный. Игнорирует двоичные файлы.
FFind 'ele.*phant' -name '*.c' -or -name '*.h'
Рекурсивно поиски все c файлы кода в текущем каталоге для строки 'ele. *hant' (никакое регулярное выражение, соответствующее). Игнорирует файлы, созданные Subverion, мерзавцем или подвижный.
EFind 'mo*use' -name '*.java'
Рекурсивно поиски все файлы кода Java в текущем каталоге для строковой музы или мыши или американского лося или.... Игнорирует файлы, созданные Subverion, мерзавцем или подвижный.
Протестированный с ударом и zsh.
Просто для более быстрого запуска. Если у вас один узел запускается в основном режиме, а другие узлы запускаются в резервном режиме, тогда все будет работать так, как вы хотите, немедленно. Альтернативой может быть запуск обоих узлов в ведущем режиме или запуск обоих узлов в резервном режиме, и в этом случае все не будет работать правильно, пока узлы не установят, что они являются единственными рабочими узлами.