O preenchimento automático do terminal adiciona um valor adicional

1

Estou tendo o problema com o terminal automático e a guia completa. Se eu tentar concluir automaticamente usando TAB para qualquer arquivo ou pasta que tenha um espaço no nome, ele estará adicionando um \ antes do espaço.

Por exemplo, VirtualBox VMs se tornará VirtualBox\ VMs/

Se eu tentar concluir automaticamente depois de pressionar V, clique na guia.

Alguma idéia do que está causando isso? obrigado

    
por Aaran 27.01.2016 / 18:05

2 respostas

2

Isso se deve aos espaços que estão sendo escapados. \ é o caractere de escape no shell bash, usado em sistemas Linux e, portanto, no Ubuntu.

Os nomes de arquivos do Linux não são projetados para conter espaços e alguns outros caracteres especiais. Isso ocorre porque muitos comandos Linux / Unix usam espaços para marcar o final dos parâmetros. O caractere de escape é usado para impedir que esses caracteres especiais tenham seus significados especiais, onde não é desejado.

    
por Arronical 27.01.2016 / 18:11
1

Para responder a esta pergunta, vou citar esses parágrafos da revista Linux :

  

Nos bons tempos em que o UNIX era jovem, ninguém nunca teria   pensou em colocar um espaço em um nome de arquivo. Simplesmente não foi feito - apenas   como você nunca faria isso em um sistema DOS ou Windows. Nomes de arquivo foram   curto, sucinto e bem formado, como HW43.DOC.

     

A maioria dos utilitários de linha de comando do Linux e os próprios shells   foram projetados com base na premissa de que um espaço delimita um campo   valor em vez de ser um componente aceitável de um nome de arquivo.

Para superar isso, você deve usar um caractere de escape, como mostrado em seu terminal, ou simplesmente citar seu arquivo com aspas simples ou aspas duplas.

exemplo:

cp dir\ 1/ ~/Desktop

ou

cp 'dir 1' ~/Desktop

ou

cp "dir 1" ~/Desktop

Para ler mais:

Você também pode encontrar uma ótima resposta interessante para Quais razões técnicas existem para não usar caracteres de espaço em nomes de arquivos?

A resposta afirmou algumas razões, tais como:

  • Problemas na portabilidade
  • Comprimento
  • Caracteres Reservados
  • Interpretação de linha de comando
  • Localizadores uniformes de recursos (URL)

Detalhes completos da resposta podem ser encontrados neste link .

    
por Maythux 27.01.2016 / 19:11