Скажем, я хотел убедиться, что я сначала удаляю нужные файлы, поэтому я сделал что-то вроде:
rm -i *
просто чтобы убедиться, что я в порядке с файлами, которые я удаляю. Так что это попросит меня для каждого файла. После нескольких файлов, я понимаю, что это именно то, что я хотел удалить. Вместо того, чтобы CTRL+C
просто думать и делать rm *
, могу ли я просто сказать « да» всем ?
Этот вопрос больше связан с любопытством, чем с функциональностью.
Ответы:
Нет.
(Если вы не найдете способ перевернуть «интерактивный» бит с помощью отладчика.)
источник
coreutils/src/remove.c:335
→coreutils/lib/yesno.c:46
(генерируется) →rpmatch(3)
: «возвращает 0 для распознанного отрицательного ответа (« нет »), 1 для распознанного положительного ответа (« да ») и -1, если значение ответа не распознано»Ну, это не совсем отвечает на ваш вопрос. Но вместо использования
rm -i
рассмотрите псевдонимrm
дляrm -I
:Страница руководства гласит:
в вашем
~/.bashrc
, положите:это на самом деле полезно!
источник
Ответ - да, используя этот код:
$ yes "yes" | rm -vRI directory
источник
Просто проверьте сначала с помощью,
ls *.bla
а затем,rm -f *.bla
может быть?Будьте осторожны!
источник
Если вы работаете на экране (хорошая идея в целом), вы можете сделать:
Это заставит screen выполнить команду «yes», где y будет выводом, и направить указанный вывод в работающую программу (rm -i).
источник
Это можно сделать, заменив дескрипторы файлов приложения на лету. Вам понадобится промежуточный файл, хотя.
Вы можете использовать gdb и именованный канал следующим образом (при условии, что вы используете больше терминалов, в противном случае вам придется использовать screen или что-то еще):
Затем введите следующие команды в GDB, заменив PID
Это заменяет клавиатуру именованным каналом для rm.
Теперь вам нужно заполнить именованную трубу
rm прочитает трубу и все перезапишет.
источник
rm
процесс в фоновом режиме сCtrl+Z
.rm -i *
команду)-i
Enter
запустить командуfg %1
Ctrl+C
источник
5s/fg/kill/; 6d