Em teoria sim. Na prática geralmente também sim. Se você está chamando um script de shell ou um alias que faz algo estranho, então talvez não.
Você pode usar echo
para ver o que um comando em particular seria expandido para o shell:
$ echo rm -R ~
rm -R /home/frostschutz
$ echo rm -R "~"
rm -R ~
Observe que echo
remove o ""
, portanto, você não deve copiar e colar o que é impresso. Isso mostra que, se você der "~"
, o comando verá literalmente ~
e não o caminho /home/frostschutz
expandido.
Se você tiver alguma dúvida sobre qualquer comando, que tal começar algo menos letal se ele der errado? No seu caso, você pode começar a renomear em vez de excluí-lo imediatamente.
$ mv "~" delete-me
$ ls delete-me
# if everything is in order
$ rm -R delete-me
Para confundir nomes de arquivos que normalmente não deveriam existir (como ~
e outros nomes que começam com ~
ou , ou que contenham novas linhas, etc.), é melhor prevenir do que remediar. / p>
Considere também o uso da conclusão de tabulação (tipo ls ~<TAB><TAB><TAB>
), a maioria das shells tenta o seu melhor para cuidar de você, o que também ajuda a evitar erros de digitação de nomes de arquivos comuns.