Vamos entender como o comando rm -rf
funciona primeiro. Ele remove tudo em um determinado diretório e no próprio diretório, portanto, se você der o caminho $HOME/directory_1/directory_2/
, o directory_2
será removido juntamente com seus arquivos. O resto do caminho estará seguro. Aqui está um exemplo:
$ tree somethings/
somethings/
└── subdirectory_1
├── a
└── b
1 directory, 2 files
$ rm -rf somethings/subdirectory_1/
$ tree somethings
somethings
Então, até onde seus comandos vão:
-
rm -r "$HOME/.wine"
removido apenas.wine
directory -
rm $HOME/.config/menus/applications-merged/wine*
apenas cuidou de todos os arquivos que começam comwine
string na pasta$HOME/.config/menus/applications-merged
-
rm -r "$HOME/.local/share/applications/wine"
removeu apenas a pastawine
-
rm $HOME/.local/share/desktop-directories/wine*
livrou-se dos arquivos que começam comwine
in$HOME/.local/share/desktop-directories
folder -
rm $HOME/.local/share/icons/????_*.xpm
nuked todos os arquivos.xpm
.
Em outras palavras, eles são suficientemente seguros.
O que eu e o Rinzwind discutimos nos comentários e no Ask chatroom, é que é possível alterar a variável $HOME
. Sim, é possível, mas se você alterar intencionalmente $HOME
, você precisa manter isso em mente; caso contrário, não é culpa do rm
e sejamos honestos - é simplesmente estúpido do ponto de vista do usuário. Os comandos funcionam apenas no caminho que você fornece, portanto, forneça o caminho correto para os comandos.
Outros possíveis problemas são espaços. Se você tiver espaço no nome da sua pasta base, como /home/My User
, sem aspas em torno de $HOME
, o shell achará que você está fornecendo dois argumentos, /home/My
e User
. Esse efeito é conhecido como divisão de palavras. Por isso, sempre cite suas variáveis como "$HOME"