Como selecionar um autocomplete diferente usando o atalho de tabulação?

0

Eu digito por exemplo: cp /media/Macintosh

Estou recuperando o HD de alguém, então quero Então Tab para que possa colocar corretamente a formatação para Macintosh HD

Eu quero então que ele complete entre algumas opções se você pressionar a tecla ...

para este exemplo, há Desktop e Desktop (antigo) como eu escolho o Desktop (antigo) quando eu digito De guia guia mostrado lá como um lista de opções, mas não sei como escolher a segunda opção na lista.

Eu preciso da formatação correta para o diretório "/ Desktop (old) /" e eu posso usar o guia para fazer isso, mas não sei como.

Agora tenho um novo problema: Estou fazendo uma recuperação de dados para alguém:

-Ubuntu:~# cp /media/Macintosh\ HD/Users/orlando/Desktop\ \(original\)/VIDEOS\ ESPANOL/ /media/\$G\$\ DATA/Orlando/Desktop/
cp: omitting directory '/media/Macintosh HD/Users/orlando/Desktop (original)/VIDEOS ESPANOL/'

Quando digitei que esta foi minha resposta:

-Ubuntu:~# cp /media/Macintosh\ HD/Users/orlando/Desktop\ \(original\)/VIDEOS\ ESPANOL/ /media/\$G\$\ DATA/Orlando/Desktop/
cp: omitting directory '/media/Macintosh HD/Users/orlando/Desktop (original)/VIDEOS ESPANOL/'

A propósito, eu estou logado como root. O que isso significa e como eu corrijo isso?

Agora que sei algo e esta pergunta é popular: Alguém sabe uma maneira de modificar seu bash_profile para que você possa usar a guia várias vezes para percorrer diferentes caminhos?

A resposta correta para alguém realmente fazer isso seria: cd ~/.bash_profile ou ~/.basher

abra o arquivo com Sublime / TextEditorOfChoice / VIM / echo no arquivo:

Copie e cole:

bind '"\t":menu-complete' OR: bind TAB:menu-complete

Em seguida, feche e abra seu terminal / bash / commandprompt.

    
por Zargold 17.06.2014 / 19:56

2 respostas

1

Você não "escolhe", apenas continua digitando. A conclusão da Tab será interrompida assim que encontrar o primeiro caractere diferente nos dois arquivos. Então, usando o seu exemplo, você veria

$ cd Desktop
Desktop/       Desktop (old)/ 
$ cd Desktop

Você só precisa continuar digitando. No entanto, você optou por usar nomes estranhos que contenham espaços e parênteses. Esta é uma má ideia, uma vez que os torna mais difíceis de lidar. Para inserir um espaço como parte do nome do arquivo (normalmente é usado para significar o final de uma palavra ou nome de arquivo), é necessário escapá-lo com uma barra invertida ( \ ). Então, neste caso, você precisaria escrever \ (que é \ Espaço ) e então pressionar Tab novamente:

$ cd Desktop
Desktop/       Desktop (old)/ 
$ cd Desktop\ ##<--- hit Tab again here

Ele será magicamente concluído para

$ cd Desktop\ \(old\)/

Observe como os parênteses serão automaticamente excluídos também.

O exemplo acima é como o shell padrão do Ubuntu ( bash ) funciona. Outros shells permitem que você pressione Tab novamente para percorrer as opções disponíveis. Por exemplo, tanto zsh como fish permitem percorrer e escolher a que você deseja. Ambos estão nos repositórios, então você pode querer vê-los.

    
por terdon 17.06.2014 / 20:05
2

No Windows, se você digitar Desk e, em seguida, a Tab , ele percorrerá todas as correspondências possíveis (sem distinção entre maiúsculas e minúsculas). O Ubuntu não funciona assim (por padrão). Com o ubuntu, se você digitar De Tab , ele irá preencher até Desktop e, em seguida, você precisará dizer como ele se diferencia.

Em geral, colocar caracteres especiais (como espaços) em um nome de arquivo não é uma boa prática. Existem duas maneiras de selecionar um arquivo chamado "Desktop Old" e elas são

Desktop\ Old

ou

"Desktop Old"

Na primeira opção, o \ age como um caractere de escape, o que significa que o caractere que vem depois disso deve ser interpretado não como parte de um comando ou como uma separação de argumentos, mas parte do mesmo argumento que precede isto. A segunda opção simplesmente coloca entre aspas.

Então, no seu caso, o que você faria é:

cp De guia - > cp Desktop

Agora, aqui, você deseja digitar \ , que deve, depois de pressionar a guia novamente, permitir o preenchimento automático do (old) .

Além disso, é importante notar que o comando final após o preenchimento automático será:

cp Desktop\ \(Old\)

Como parênteses, também são caracteres especiais, como espaços.

    
por Mitch 17.06.2014 / 20:04