MacOS é um sistema operacional Unix e rm
significa "adeus". A interface GUI permite mover um arquivo para a lixeira (que você pode recuperar), mas não foi isso que você fez. Se você tiver um backup (por exemplo, se o Time Machine estiver em execução), você será salvo.
Esclarecimento
Estritamente falando (como @ire_and_curses aponta), um rm
simplesmente exclui a entrada de diretório para o arquivo, enquanto deixa os blocos de disco usados, intocados. Se você puder quiesce o sistema de arquivos no qual o arquivo foi, existem métodos avançados pelos quais você pode tentar redescobrir o conteúdo desses blocos. Existem também algumas ferramentas de recuperação que podem ser compradas para recuperar a perda. A questão central é que nada mais reutiliza qualquer um dos blocos de disco representados pelo seu arquivo.
O MacOS também possui um comando de remoção segura ( srm
) que sobrescreve um arquivo antes que ele seja unlink
ed, tornando-o irrecuperável. Eu uso o termo unlink
, pois esta é a chamada de sistema subjacente associada ao comando rm
de um shell. Isso prepara o cenário para a próxima parte desta discussão, abaixo.
Sidenote
[Devo acrescentar que, mesmo que você grave um disco várias vezes, há maneiras de ler o que foi escrito uma dúzia ou mais de vezes antes. Para higienizar adequadamente um disco para descarte, é necessário um banho de ácido, um grande martelo e um triturador. ]
unlink
ing um arquivo decrementa a contagem de links do inode do arquivo. Se esse valor chegar a zero, o arquivo será excluído do diretório do sistema de arquivos e seus blocos de disco serão liberados para reutilização. Isso só acontece quando os processos no têm o arquivo aberto. Geralmente é confuso para os administradores descobrirem que um sistema de arquivos está utilizando grandes quantidades de espaço que não podem ser explicadas pela simples soma de blocos de disco (com algo como du
). Na maioria das vezes, o motivo é que um arquivo aberto foi removido, de modo que não é mais representado em seu diretório. A razão é que os blocos de disco permanecem inutilizados até o último processo que usa o arquivo terminar.
Abrir um arquivo e imediatamente unlink
ing é realmente uma prática comum para criar arquivos temporários e seguros. Ferramentas como lsof
podem expor esses arquivos, caso contrário, se você procurar arquivos com uma contagem de links (NLINK) igual a zero.
No Unix e no Linux (dos quais o MacOS é um Unix de marca), um rm
segue a filosofia Unix de "fazer" sem fanfarra se puder. Ou seja, se você tiver as permissões para remover um arquivo (ou seja, seu diretório permite a gravação), então rm
fará exatamente o que você deseja. Você pode desejar criar um alias de shell rm='rm -i'
que solicite sua confirmação antes de executar a operação. Usar a opção -f
com rm
substitui isso, se necessário. Um rm
com alias é mais útil quando você faz glob
como rm *.log
. Ou seja, você tem a opção de pular um arquivo na lista.