Распечатайте имя файла и выполните команду на каждом результате находки

Проверьте журналы веб-сервера на шаблоны в журналы доступа и ошибках. Запустите с журналов ошибок. То же для auth.log, для грубой силы входит в нападения. Если Вы просто восстановите свой сервер с тем же веб-приложением или паролем на SSH, то это будет только за несколько дней до того, как Вы будете взломаны снова.

2
05.10.2015, 14:01
3 ответа

Также путь без xargs:

find . -name "*.haml" -ls -exec haml --check {} \;

распечатать только имя файла с путем:

find . -name "*.haml" -print -exec haml --check {} \;
8
27.01.2020, 21:50
  • 1
    я не хочу печатать полномочия файла и имя владельца. Просто –  Mohsen 14.05.2013, 21:20
  • 2
    Это не проблема. Новый вариант находится в ответе. –  rush 14.05.2013, 21:23
  • 3
    В Лучшем ответе, но немного сбивающий с толку тех, кто ожидает способ выполнить две отличных команды как заголовок вопроса, говорится. Я предложу редактирование. –  Nemo 05.10.2015, 13:34
find . -name "*.haml" -print0 | xargs -0 -n 1 --no-run-if-empty haml --check 

выполнения haml на каждом файле, найденном find

Если haml может взять несколько файлов в одном вызове, можно не учесть -n 1

2
27.01.2020, 21:50
  • 1
    Спасибо! Это теперь выполняет итерации через файлы. Я хочу распечатать имя файла (аргумент, что мы являемся передающими к haml --check) перед выполнением haml --check также. –  Mohsen 14.05.2013, 21:17
  • 2
    пути, если Вы добавляете -v к xargs также, затем это распечатает команду (haml --check filename.haml перед выполнением., Что в порядке или у Вас должно действительно быть только имя файла? –  Anthon 14.05.2013, 21:21

Вот портативный и эффективный способ выполнить несколько команд с находкой, не используя GNU определенный "-print0" и "xargs-0" приемов:

find . -name "*.haml" -exec sh -c 'for i; do echo $i;ls -l $i;haml --check $i; done' sh {} +
1
27.01.2020, 21:50

Теги

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