grep и каталоги, содержащие пробелы

Я подозреваю, что SElinux является бэкдором, и я хочу мешать ему работать над моей системой.

Если Вы подозреваете, что SElinux является черным ходом, то у Вас есть более серьезная проблема на Ваших руках, чем просто отключение ее функциональности.

SElinux является на самом деле базовым компонентом в самом Linux; это - часть восходящего дерева "магистрали", означая, что это интегрировалось в основной исходный код Linux в течение прошлых 10 лет. Если это - действительно, бэкдор, то это - бэкдор, который был помещен там самим Linus Torvalds, который лично утвердил его включение в 2003.

И если, поэтому, Torvalds и все другие базовые специалисты по обслуживанию Linux готовы включать закулисное программное обеспечение в Linux, Вы не можете доверять ни одному коду, который они производят.

Так, единственный способ решить проблему, которую Вы предложили, состоит в том, чтобы переключиться на альтернативную ОС полностью, BSD, например.

2
16.03.2014, 01:33
2 ответа

Лучше использовать find и передать команду оболочки -exec :

find /path/to/files -type f -exec sh -c 'for file do
    egrep -iq "déni|deni" "$file" && egrep -li "arthur" "$file"
    done' sh {} +

. Это будет работать с именами файлов, содержащими пробелы.

Вскрытие команды оболочки:

egrep -iq "déni|deni" "$file" && egrep -li "arthur" "$file"

Вызов egrep -iq "déni | deni" "$ file" вернет true , если шаблон совпадает. Таким образом, он выполнит egrep -li "arthur" "$ file" , который выведет список файлов, если эта команда соответствует указанному шаблону.

На самом деле вам даже не нужна оболочка: предикаты

find /path/to/files -type f -exec egrep -iq "déni|deni" {} \; \
                            -exec egrep -li "arthur" {} \;

( -exec с терминатором ; также могут использоваться как условия (в зависимости от статуса выхода выполненной команды)).

3
27.01.2020, 21:51

С помощью GNU grep вы можете использовать параметр -Z , чтобы обнулить разделение имен файлов перед подключением к xargs :

egrep -lirZ 'déni|deni' /path/to/files/ | xargs -0 egrep -li 'arthur'
5
27.01.2020, 21:51

Теги

Похожие вопросы