Todas as respostas propostas funcionarão para sua experiência de linha de comando. Mas deixe-me entrar em contato com minha sugestão pessoal: não faça isso . Nunca.
Fundamentação: você deve saber o que está fazendo; usar rm
pensando que existe uma rede de segurança (com um alias, uma mudança global no executável (1), outras coisas) fará com que você cresça confiante e você irá cometer grandes erros quando a segurança net por qualquer motivo não está presente - que pode ser uma atualização, outro sistema ou qualquer outra coisa.
O comando rm
é um shell (complexo) em torno da família unlink () de chamadas do sistema --- veja-o como o serviço de kernel do Linux que dispõe de ficheiros (2). Muitos programas apenas usam a chamada do sistema, ignorando completamente suas redes de segurança.
Por exemplo, o comando
find . -name test2.aux -delete
chamará diretamente o unlink, como você pode ver usando strace
:
strace find . -name test2.aux -delete
...
unlinkat(AT_FDCWD, "test2.aux", 0) = 0
...
... e aposto que o servidor SFTP fará o mesmo. Eles estão fora do escopo da "proteção" do seu alias ou até mesmo da substituição binária rm
.
Mesmo um simples mv
, cp
ou > file
pode destruir um arquivo fora da sua rede de segurança.
O único cofre é um bom backup (3). Aprenda a fazer isso com frequência e verifique todos os seus comandos. Triplo se estiver executando como root.
Notas de rodapé:
(1) não faça isso, a menos que o comando de substituição esteja pronto para aceitar exatamente todos os sinalizadores e condições de canto que rm
gerencia.
(2) muito mais complexo do que isso, realmente.
(3) ou fazendo isso no nível do kernel, provavelmente usando um sistema de arquivos que possui algum tipo de memória de longo prazo (um sistema de arquivos de versionamento ). Lembro-me de trabalhar com o VMS no final dos anos 80 - o sistema de arquivos lembrava toda a versão de um arquivo que anexava um "; 1", "; 2" etc no nome, no nível do kernel. Útil, mas um pesadelo de manutenção.