Alterando o comportamento de preenchimento automático de rm -r para diretórios com espaços em branco em seus nomes

1

Estou executando o Ubuntu 12.04.

Se eu tentar completar automaticamente para excluir um diretório com espaços no nome, isso não funcionará.

Digamos que meu diretório seja chamado de "algum diretório espacial". Se eu digitar rm -r some e clicar na guia, nada mais será preenchido automaticamente. Então eu digito um pouco mais, digamos rm -r some\ s . Agora, se eu clicar na guia, ele será preenchido automaticamente, mas removerá os caracteres \ , dando rm -r some spacey directory . Isso, no entanto, não excluirá algum diretório espacial. Então isso é inconveniente.

Mas quando isso é um verdadeiro pesadelo: Se você tem dois diretórios, diga "básico" e "básico com um recurso adicionado" e execute rm -r basic with an added feature você acaba apagando o básico.

Minha pergunta: Existe algum motivo para o autocomplete ter esse comportamento? Existe alguma maneira que eu possa me livrar disso? Isso parece um comportamento perigoso no contexto de um comando de exclusão permanente.

    
por BenB 15.05.2013 / 03:14

1 resposta

1

O preenchimento de tabulação está funcionando aqui para diretórios e arquivos com espaços em seus nomes.

Como você pode ver, o Linux não gosta de espaços em nomes de arquivos. Você tem que escapar deles com um \ ou usar aspas.

rm -rf "directory with spaces"

rm na linha de comando é severo e erros de digitação podem lhe dar problemas. Eu sugiro que você use a opção -i para confirmação.

rm -i file to remove

lhe dará confirmação, você quer remover o arquivo? e você pode abortar. Eu já estou em ~ / .bashrc

alias rm="rm -i"

boa sorte

    
por Panther 15.05.2013 / 04:09