Digamos que eu queria ter certeza de que estou removendo os arquivos corretos primeiro, então fiz algo como:
rm -i *
apenas para ter certeza de que estou bem com os arquivos que estou removendo. Então, isso me pedirá para cada arquivo. Após alguns arquivos, suponha que percebo que é exatamente o que eu queria remover. Em vez de CTRL+C
fazer e apenas fazer rm *
, existe uma maneira de dizer Sim a todos ?
Essa questão vem mais da curiosidade do que da funcionalidade.
Respostas:
Não.
(A menos que você encontre uma maneira de inverter o bit 'interativo' com um depurador.)
fonte
coreutils/src/remove.c:335
→coreutils/lib/yesno.c:46
(gerado) →rpmatch(3)
: "retorna 0 para uma resposta negativa reconhecida (" não "), 1 para uma resposta positiva reconhecida (" sim ") e -1 quando o valor da resposta não é reconhecido"Bem, isso realmente não responde à sua pergunta. Mas, em vez de usar
rm -i
, considere aliasingrm
pararm -I
:A página do manual declara:
no seu
~/.bashrc
, coloque:isso é realmente útil!
fonte
A resposta é sim, usando este código:
$ yes "yes" | rm -vRI directory
fonte
Basta verificar primeiro usando
ls *.bla
e entãorm -f *.bla
talvez?Tenha cuidado!
fonte
Se você estiver executando na tela (uma boa ideia em geral), poderá:
Isso faria com que a tela execute o comando 'yes' com y sendo a saída e direcione a saída para o programa em execução (rm -i).
fonte
Isso pode ser feito substituindo os descritores de arquivo do aplicativo em tempo real. Você precisará de um arquivo intermediário.
Você pode usar o gdb e um pipe nomeado como este (supondo que você esteja usando mais terminais, caso contrário você precisará usar a tela ou outra coisa):
Em seguida, digite os seguintes comandos em gdb, substituindo o PID
Isso substitui o teclado por um pipe nomeado para rm.
Agora você precisa preencher o pipe nomeado
O rm irá ler o pipe e sobrescrever tudo.
fonte
rm
processo em segundo plano comCtrl+Z
.rm -i *
comando)-i
Enter
para executar o comandofg %1
Ctrl+C
fonte
5s/fg/kill/; 6d