6

Я пишу некоторый код, который будет применять программу patch(1), и я хочу полностью предотвратить создание файлов резервных копий. То есть я не хочу, чтобы он создавал файлы foo.orig когда он либо не может обновить определенный файл (в этом случае он создает файл foo.rej ), либо когда он успешно обновляет файл, но в этом есть некоторая нечеткость, оба из которых это обычно делает. Кажется, это легче сказать, чем сделать.

Базовый случай: я запускаю "patch" для исходного каталога Debian, и он не может обновить debian/changelog . patch создает файл debian/changelog.orig (это то, чего я пытаюсь избежать).

В документации упоминается ключ --no-backup-if-mismatch , который, кажется, как раз то, что мне нужно. Но когда я его добавляю, файл резервной копии все еще создается, только теперь он называется debian/changelog.~1~ .

В документации также сказано, что при наличии ключа --posix резервное копирование не будет. Когда я использую этот ключ вместо --no-backup-if-mismatch , файл резервной копии все еще создается, но с исходным суффиксом .orig .

Единственный обходной путь, который я нашел, - это использовать -B/--prefix чтобы направлять резервные копии для записи в каталог по моему выбору. Но это похоже на уродливый хак. Нет ли более чистого способа предотвращения резервного копирования?

2 ответа2

2

Очевидно, -B/--prefix единственный путь.

1

Согласно резервным копиям (diffutils), --no-backup-if-mismatch делает то, что вы хотите.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .