Acidentalmente fez um diretório “~” em um subdiretório [duplicado]

3

Eu acidentalmente criei um diretório "~ /" em um subdiretório no meu diretório pessoal. Como remover com segurança esse diretório sem afetar meu diretório inicial. rm -r ~ obviamente não vai funcionar ... Obrigado!

    
por Wen Huang 18.09.2016 / 02:58

2 respostas

5

Quando colocado entre aspas, ~ nunca é expandido. Então:

rm -r '~'

Da mesma forma, a expansão do til não é executada a menos que o til seja o primeiro caractere. Então, isso também funcionará:

rm -r ./~

Abordagem mais segura para remover diretórios vazios

rm -r removerá um diretório e todo o seu conteúdo. Se você quiser apenas excluir um diretório se estiver vazio, use rmdir (Dica do Hat: Patrick). Neste caso:

rmdir '~'

Ou

rmdir ./~

Documentação

Tilde Expansion
If a word begins with an unquoted tilde character (~), all of the characters preceding the first unquoted slash (or all characters, if there is no unquoted slash) are considered a tilde-prefix. If none of the characters in the tilde-prefix are quoted, the characters in the tilde-prefix following the tilde are treated as a possible login name. If this login name is the null string, the tilde is replaced with the
value of the shell parameter HOME. If HOME is unset, the home directory of the user executing the shell is substituted instead. Otherwise, the tilde-prefix is replaced with the home directory associated with the specified login name. [Emphasis added.]

    
por 18.09.2016 / 03:05
0

O comando rm -ir -- relativepath/~ irá removê-lo. O -r flag observa se um diretório está vazio, somente então prossegue. -i solicita confirmação antes de agir.

    
por 18.09.2016 / 10:16

Tags