Есть много вопросов о том, какотменить законченное rm
команда. В моем случае мой rm начал спрашивать: «Вы уверены, что хотите удалить этот файл?»
И мне нужно подтвердить для каждого из них. Вместо того, чтобы вручную подтверждать "y/n":
Могу ли я установить «да» для оставшейся части, когда меня спрашивают y/n для n-го файла? (эквивалентно флажку «Да для всех» в Windows) (я знаю этот
yes | rm
трюк еще до того, как начал)Могу ли я прервать операцию, пока меня спрашивают y/n для n-го файла? (кроме выключения машины :))
решение1
Для выполнения запроса 1 вам понадобится более сложная программа, чем yes
отправлять y
N раз и затем передавать ввод с клавиатуры сверх этого. Вы не можете сделать это с помощью rm
except to always ask ( rm -i
) или to never ask ( rm -f
).
Вы всегда можете прервать операцию rm
,
- нажатие Control-C, чтобы прервать его (отправляет SIGINT),
- нажать Control-Z, чтобы остановить его (отправляет SIGSTOP), а затем убить его,
- отправка SIGTERM (
kill
), или - отправив ему сигнал SIGKILL (
kill -9
).
Это не отменит rm
уже выполненные операции с файлами, но предотвратит выполнение дальнейших операций с файлами. Если процесс rm
в данный момент запрашивает ввод данных пользователем, он не отсоединяет никакие файлы, поэтому его завершение просто предотвратит его продолжение.
решение2
GNU rm поддерживает -i
, что, как я полагаю, и есть то, о чем вы говорите, и запрашивает подтверждение для каждого файла, но также -I
, что немного отличается:
-I prompt once before removing more than three files, or when
removing recursively. Less intrusive than -i, while still giv‐
ing protection against most mistakes
Что касается возможности остановить взаимодействие с rm после его начала, то нажатие Ctrl- Cдолжно это сделать.
решение3
с помощью Ctrl+ cвы сможете отменить операцию.
Но если вы посмотрите в свой .bashrc
файл, вы можете закомментировать псевдоним, который принудительно подтверждается, он использует -i
параметр, как описано в dhag.
у вас .bashrc
вы найдете такую запись:
alias rm='rm -i'
если вы прокомментируете это, ваша rm -f
воля будет работать напрямую
решение4
В разделе bash
, вы можете обойти псевдоним, добавив \
к команде префикс a, например:
rm filename
становится
\rm filename