Использование diff / patch для создания нового файла внутри каталога

Is there any way to exit “less” follow mode without ^C?

Да, , начиная с версии 569, можно выйти из режима отслеживания с помощью CTRL + X , что не останавливает другие процессы в канале.

Для более ранних версий less (с поддержкой только CTRL + C)можно настроить так, чтобы сигнал SIGINT, отправляемый при нажатии CTRL + C не влияет на другие процессы в канале, что позволяет им продолжать работу. Этого можно добиться, выполнив любое из следующих действий:

  • предотвращение доступа SIGINT к другим процессам в канале путем перемещения этих процессов в отдельную группу процессов с помощью утилиты setsid :

(setsid seq 10000000) | less +F

  • обработка(перехват)SIGINT, чтобы он не доставлялся другим процессам в канале:

(trap '' INT; seq 10000000) | less +F

  • с использованием подстановки процессов (несовместимая с POSIX функция, реализованная в Bash, Zsh и Ksh, но не в, например,. Тире):

less -f +F <(seq 10000000)

(seq 10000000 &) | less +F

Для наблюдения за влиянием вышеперечисленных команд на группы процессов и обработку сигналов я предлагаю использовать команду ps -O ppid,pgrp,sid,ignored --forest -C bash,less,seqв отдельном терминале.

1
07.07.2019, 21:55
1 ответ

Ваш первый патч и то, как вы его применяете, просит patchсоздать файл с именем Upd/create_me.txt, а не Org/create_me.txt:, полный путь имеет значение. Когда patchвидит запись, датированную эпохой (170 -01 -01 00 :00 :00 UTC ), он знает, что это представляет несуществующий -файл; если это «начальная» запись, он знает, что должен создать файл, а если это «конечная» запись, он знает, что должен удалить файл. Имя создаваемого или удаляемого файла берется из другой записи .

Второй патч работает так же, :он указывает patchудалить Org/delete_me.txt.

Ваш третий подход работает, потому что вы указываете patchигнорировать первую часть пути, , то естьOrgили Upd. Таким образом, он создает файл с именем create_me.txtв текущем каталоге Org.

Чтобы ваш первый пример заработал, вы можете заменить Upd/create_me.txtна Org/create_me.txtв патче.

1
27.01.2020, 23:41

Теги

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