... A solução mais comum para este perigo é usar o nome alternativo rm para executar rm -i para que seja solicitada a confirmação antes de cada eliminação:
$ alias rm='rm -i' Often found in a shell configuration file $ rm *.txt /bin/rm: remove regular file 'a.txt'? y /bin/rm: remove regular file 'b.txt'? y /bin/rm: remove regular file 'c.txt'? y
Como resultado, um caractere de espaço extra não precisa de ser fatal, porque os prompts de rm -i irão avisar que estás a remover os ficheiros errados:
$ rm * .txt /bin/rm: remove regular file '123'? Something is wrong: kill the command
A solução dos aliases é complicada, no entanto, porque a maior parte do tempo podes não querer ou precisar que o rm te faça um prompt. Também não funciona se estiveres ligado a outra máquina Linux sem os teus aliases. Vou mostrar-te uma maneira melhor de evitar que os nomes de ficheiros errados correspondam a um padrão. A técnica tem dois passos e baseia-se na expansão do histórico:
-
Verifica. Antes de executar
rm, executalscom o padrão desejado para ver que ficheiros correspondem.$ ls *.txt a.txt b.txt c.txt
-
Elimina. Se a saída de
lsparecer correta, executarm !$para eliminar os mesmos ficheiros que foram correspondidos.2$ rm !$ rm *.txt
A expansão de histórico !$ ("bang dollar") significa "a última palavra que escreveste no comando anterior". Portanto, rm !$ aqui é uma abreviatura para "apaga o que quer que eu tenha acabado de listar com ls", nomeadamente,*.txt. Se acidentalmente adicionares um espaço ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access