Как я могу сказать grep искать в файле, что у меня есть разрешение?

Хорошо я не знаю об установке никаких конкретных настроек по умолчанию, но можно отключить мастер первого показа путем помещения следующего в reg файл и импорта ее к терминальному серверу:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Internet Explorer\Main] "DisableFirstRunCustomize" =dword:00000001

1
задан 18 March 2011 в 10:20
4 ответа

Использовать find / -readable -print0 | xargs -0 grep -H "some_str" вместо grep -r. (Требует GNU find, но grep -r GNUish, таким образом, я подозреваю, что это не проблема.)

Но на самом деле не столь "очевидно", что это быстрее; grep -r позволяет open() вызов узнает, что Вы не можете считать его, тогда как find версия имеет к stat() во-первых, затем grep делает open() — и самая дорогая часть этого, для файлов, которые не читаемы, является ядром, преобразовывающим пути в узлы индекса файловой системы. (На самом деле поиск читаемых файлов будет объемом времени выполнения иначе для файлов любого значительного размера.), Довольно вероятно, более быстрый подход должен только добавить 2>/dev/null к grep -r таким образом, нет потерянных сообщений ошибки печати никакого времени для замедления терминалов.

10
ответ дан 3 December 2019 в 16:11

Вы могли использовать grep -s проигнорировать сообщения о нечитабельных файлах.

Печать сообщений об ошибках является единственной вещью, которая могла вызвать замедление, это не похоже на чтения grep целый файл и при затем отбрасываниях все результаты, потому что это на самом деле не имело прав считать его.

3
ответ дан 3 December 2019 в 16:11

Можно попробовать, найдите:

find / -perm o=r -or -user <user> -exec grep whatever '{}' \;

Howewer, эта команда не будет искать в файлах, в которые у Вас есть разрешение через группу.

ОБНОВЛЕНИЕ: существует находка - читаема, как предложено другим ответом.

1
ответ дан 3 December 2019 в 16:11

Вот интересный способ сделать это с Параллелью GNU, предполагая, что Ваша находка (1) не поддерживает -readable флаг:

find / -type f 2>/dev/null | parallel -m "grep blah {}"

-m опция быть параллельным заставляет его наполнить как можно больше файлов в каждый вызов к grep, который более эффективен что, просто захватив один файл за один раз.

Я понимаю, что проблема с этим - это, выбросит другой find ошибки помимо проблем полномочий. Я подозреваю, что может быть способ работать вокруг этого с опцией находки -depth но я еще не исследовал это.

Было бы интересно сравнить find / grep по сравнению с. grep -r по сравнению с. parallel подходы к многоядерной системе и видят, который быстрее.

0
ответ дан 3 December 2019 в 16:11

Теги

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