Por que ferramentas gostam cp
e rm
tratam diretórios separadamente dos arquivos regulares? Ambos exigem que o usuário especifique explicitamente que ela quer um comportamento recursivo, ou então eles não vão lidar com os diretórios.
Minha primeira interação (um tempo atrás) com computadores foi em um ambiente Windows / GUI / apontar e clicar / arrastar e soltar, sempre parecia natural que essas operações se comportassem da mesma forma, independentemente do destino.
Esse comportamento me frustra particularmente quando eu dou comandos com curingas. E se eu quiser remover tudo em um diretório ( *
), exceto os subdiretórios não vazios ?
Só posso imaginar que esse é algum tipo de recurso de segurança para impedir que o usuário atire no próprio pé, mas isso contradiz minha compreensão de alguns princípios do Unix:
- O Unix geralmente não protege o usuário de si mesma. Sempre assumiu que o usuário sabe o que está fazendo.
- Para o Unix, tudo é um arquivo. Um diretório não é apenas outro arquivo? Por que eles são tratados de maneira diferente?
Minhas perguntas:
- Esse comportamento é decorrente de uma limitação técnica ou é uma escolha deliberada?
E no caso deste último,
- existem relatos históricos das razões que motivaram essa escolha?
rm
, pelo menos, se quiser ignorar a diferença entre arquivos e diretórios, você pode colocar no seu~/.bashrc
arquivo:alias rm='rm -r'
.