Selecione o nome do arquivo unicode no Bash

9

Está bem; suponha que eu esteja no Bash e tenha vários arquivos em uma pasta. Vários deles são nomeados file☠☡☢☣.txt, onde ☠☡☢☣começa com caracteres unicode loucos e não tipáveis. Como eu me referiria a um deles? A guia "Pushing" apenas é concluída automaticamente e file, em seguida, ele deseja que você digite um caractere louco. Existe alguma maneira de dizer ao bash "selecione o terceiro da lista que você acabou de me dar"?

Erhannis
fonte

Respostas:

9

Sugiro que você trabalhe com ele e use outro tipo de ligação de chave com o readline, como Shift+ TAB. Adicione o seguinte ao seu ~/.inputrc:

"\e[Z": menu-complete

Em seguida, emita um exec bash(deve ler as configurações no seu ~/.inputrc). Como uma alternativa, em vez de reiniciar o bash, você pode configurar a mesma ligação executando bind '"\e[Z": menu-complete'.

Agora você deve poder usar ShiftTABsequências repetidas para percorrer os nomes de arquivos correspondentes (em vez de precisar inserir o próximo caractere correspondente). Isso funcionará para qualquer comando emitido (pois é um comando de linha de leitura padrão que está sendo vinculado à ShiftTABsequência). Conforme observado pelo OP, isso não afeta o comportamento padrão da TABchave, apenas adiciona a funcionalidade do ShiftTABcombo.

Drav Sloan
fonte
editado para mencionar o uso de exec bash, pois é um passo muito importante para fazê-lo funcionar! ;)
Drav Sloan
Obrigado! Para quem está se perguntando, isso não parece alterar a funcionalidade normal; apenas adiciona a combinação de teclas shift-tab.
precisa saber é o seguinte
Correto, por favor, deixe minha tecla tab sozinha !! :) Eu ficaria chateado se isso mudasse: D
Drav Sloan
3

Outra maneira que funciona às vezes é usar ?ou *curingas curingas e digitar parte do restante das "coisas" até que você obtenha uma correspondência única com o preenchimento da guia.

lynxlynxlynx
fonte
2

Vá para o diretório que contém file☠☡☢☣.txte insira ls -i. Você verá a linha:

xxxxx file☠☡☢☣.txt

onde xxxxxé o número do índice de file☠☡☢☣.txt. Entrar:

find . -maxdepth 1 -inum xxxxx -exec /bin/mv -i {} bettername.txt \;

onde xxxxxna linha anterior está o número de índice mencionado acima obtido de ls -i. Isso renomeia file☠☡☢☣.txtcomo bettername.txt.

Greg Marks
fonte