Selecione o nome do arquivo unicode no Bash

9

Ok; Suponha que eu esteja no Bash e eu tenha vários arquivos em uma pasta. Vários deles são denominados file☠☡☢☣.txt , onde ☠☡☢☣ começa com caracteres unicode não tipificáveis. Como eu me referiria a um deles? Apertar a aba só se completa automaticamente para file , e então você quer que você digite um personagem louco. Existe alguma maneira de dizer bash "selecione o terceiro na lista que você acabou de me dar"?

    
por Erhannis 17.09.2013 / 21:33

3 respostas

9

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

"\e[Z": menu-complete

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

Agora você deve poder usar sequências de Shift Shift TAB repetidas para percorrer os nomes de arquivos que correspondem (em vez de ter que inserir o próximo caractere correspondente). Isto irá funcionar para qualquer comando emitido (como é um comando padrão de linha de leitura que está sendo ligado à sequência TAB ). Como observado pelo OP, isto não afeta o comportamento padrão da tecla TAB , apenas adiciona a funcionalidade do combo Shift TAB .

    
por 17.09.2013 / 21:41
3

Outra maneira que funciona algumas vezes é usar ? ou * caracteres coringa e digitar um pouco do restante das "coisas" até que você obtenha uma correspondência única com a conclusão da tabulação.

    
por 17.09.2013 / 21:45
2

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

xxxxx file☠☡☢☣.txt

em que xxxxx é o número do índice de file☠☡☢☣.txt . Digite:

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

em que xxxxx na linha anterior é o número de índice acima mencionado obtido de ls -i . Isso renomeia file☠☡☢☣.txt como bettername.txt .

    
por 19.09.2013 / 00:05