Обычно возможно прокрутить систему с Busybox; веб-сайт busybox детализирует, как сделать это.
Статически связанный busybox двоичный файл потребует просто нескольких megs памяти (по тому, чего ядро требует, конечно). Я смог загрузиться и войти в машину с 8M поршня.
Однако это относительно сложно для получения всех системных служб, можно потребовать, чтобы работа, с помощью маленького существующего распределения могла бы быть лучше.
Сколько "мало памяти"? Вы находитесь в действительно крошечной встроенной системе? Если у Вас нет меньше, чем 64M, или Ваш процесс должен использовать много доступного поршня (и никакая подкачка), я рекомендовал бы идти с минимальным стандартным дистрибутивом.
Править: "buildroot" инструмент является компаньоном Busybox, который помогает Вам создать очень маленькие применимые файловые системы.
find . -type f | xargs grep -H -c 'shared.php' | grep 0$ | cut -d':' -f1
ИЛИ
find . -type f -exec grep -H -c 'shared.php' {} \; | grep 0$ | cut -d':' -f1
Здесь мы вычисляем количество согласующих отрезков длинной линии (использование -c
) в файле, если количество 0 затем, это - необходимый файл, таким образом, мы сокращаем первый столбец т.е. имя файла от вывода.
Ваша находка должна работать, если Вы изменяетесь -v -l
(файлы, которые имеют любую строку, не соответствующую) к -L
(файлы без строк, соответствующих), но Вы могли также использовать grep
рекурсивный (-r
) опция:
grep -rL shared.php .
find . -exec grep -v -l shared.php {} \;
(и все другие варианты, которые я попробовал) не работает на меня. Я нахожусь на OS X, но я не думаю, что это должно иметь значение. Я дал Вам +1, потому что я забыл о -r
опция.
– cwd
14.12.2011, 17:49
Я думаю, что Вы ищете команду как
find . -type f -execdir grep -q -v shared.php {} \; -print
Опция -q
делает grep
выход и после использования -execdir
Вам нужно -print
распечатать найденный файлами.
Вы не находите не совпадающие результат по опции -L
grep -iL shared.php .
Я знаю, что
grep -L *
сделает это, но как я могу использовать командуfind
в сочетании сgrep
, чтобы Исключить файлы - это то, что я действительно хочу знать
Вы можете использовать find
и grep
следующим образом:
find . -type f ! -exec grep -q 'PATTERN' {} \; -print
Здесь -print
выполняется, только если предыдущее выражение: ! -exec ... {}
оценивается как истина
.
Итак, для каждого найденного файла grep -q 'PATTERN'
используется exec
, если результат false
, то весь выражение ! -exec grep -q 'ШАБЛОН'
оценивается как истина
, а имя файла - print
ed.
grep
был зафиксирован это все еще не примет имен файлов, содержащих:
или символы новой строки... – don_crissti 02.10.2015, 14:46