Я не думаю, что сборка ядра из исходников улучшит работу вашего компьютера. Ядро уже оптимизировано, и его дальнейшая оптимизация потребует глубоких знаний в области разработки ядра.
Если вы можете предоставить дополнительную информацию о том, какую ОС вы хотели бы использовать на нем или с какими задачами он борется, мы, возможно, сможем предоставить полезные настройки.
Используйте
find. -type f ! -exec grep -q "$idontwant" {} ';' -exec grep -q "$iwant" {} ';' -print
или
find. -type f -exec grep -q "$iwant" {} ';' ! -exec grep -q "$idontwant" {} ';' -print
find
команды характеризуются как тесты (, например,-type f
)и действия (, например, -print
и -delete
). Это может быть трудно понять из справочной страницы что -exec
является одновременно действием и проверкой . Таким образом, как find. -type f -mtime -30 -name '*.txt' -readable -size +5 test6 test7 test8 …последовательно сужает поиск до файлов, отвечающих всем критериям (удовлетворяют всем указанным тестам ), поэтому
find. -exec cmd1 {} ';' -exec cmd2 {} ';' -exec cmd3 {} ';' …находит файлы, для которых все команды выполнены успешно.
find
тест может быть инвертирован (инвертирован ), если ему предшествует !
. Итак, find. ! -type d
находит обычные файлы, символические ссылки, именованные каналы, сокеты и файлы устройств — все, кроме каталогов.! -exec grep …
не эквивалентно -exec grep -v …
. -exec grep -v …
найдет файлы у которых хотя бы одна строка не совпадает. ! -exec grep …
найдет файлы, в которых нет совпадающих строк . -q
для grep
официально является синонимом --quiet
, но это также означает быстрый . Он не выводит ничего (, за исключением, возможно, сообщений об ошибках, если применимо ). но также он закрывается, как только находит совпадение — он не читает каждый файл до конца, чтобы найти каждое совпадение. (Конечно, если файл не содержит совпадений, то grep
должен прочитать его полностью, чтобы определить это.)grep -q "$iwant" fileпреуспевает и
grep -q "$idontwant" fileне получается (потому что мы предшествовали ему
!
). find. -type f -exec grep -q "$iwant" {} ';' ! -exec grep -q "$idontwant" {} ';' –printбудет быстрее, потому что
grep "$iwant"
удалит большинство файлов. Если многие файлы содержат обе строки, то find. -type f ! -exec grep -q "$idontwant" {} ';' -exec grep -q "$iwant" {} ';' –printбудет быстрее, потому что
! grep "$idontwant"
удалит большинство файлов. С помощью GNU grep
мы можем выполнить извлечение имени файла с разумным выбором параметров regex и grep:
$ grep -lzPsr '(?s:(?=.*blue)(?!.*red))'.
Мы используем grep в режиме slurp (-z ), в котором весь файл обрабатывается как одна большая строка.
В -l будут перечислены имена файлов (s ), соответствующие регулярному выражению.
-r будет выполняться рекурсивно для всех файлов в текущем каталоге и ниже.
-отключает grep, чтобы не выдавать никаких предупреждений.
Регулярное выражение будет искать наличие синего и отсутствие красного в файле, чтобы сказать «да».
-P вызывает механизм регулярных выражений Perl в grep, чтобы мы могли воспользоваться преимуществами регулярных выражений pcre.