#terminal #automation #linux-kernel #patch
#терминал #автоматизация #linux-ядро #исправление
Вопрос:
Я пытаюсь исправить ядро с помощью следующей команды:
patch -p1 < 0001-Linux-3.4.4.patch
Однако я продолжаю получать y / n? такие ответы, как:
The next patch would create the file arch/arm/mach-at91/pm_slowclock.S,
which already exists! Assume -R? [n]
Я попытался решить эту проблему, автоматизировав ее с помощью этой команды:
yes | patch -p1 < 0001-Linux-3.4.4.patch
Однако терминал все еще запрашивает меня с помощью y / n? ответ.
Кто-нибудь может мне здесь помочь? Спасибо
Ответ №1:
Вы пытаетесь ввести стандартный ввод в patch
команду сразу из двух мест: канал ( |
) из выходных данных yes
и перенаправление ( <
) из файла исправления. Перенаправление выполняется после настройки конвейера, поэтому стандартный ввод будет поступать из файла исправления, а не из конвейера.
patch
не считывает ответы на свои вопросы со стандартного ввода, он считывает их непосредственно с управляющего терминального устройства.
patch
есть несколько вариантов, чтобы не задавать вопросы:
-f
или--force
будет предполагать, что исправления не отменены.-t
или--batch
предположит, что исправления, которые выглядят обратными, отменены.
Существует также опция -R
или --reverse
, чтобы явно указать, что исправление отменено.