A conclusão de comandos não funciona em nomes que contêm ':'

0

Eu tenho hackeado um sistema Linux (em uma tentativa de fazer o BlueTooth funcionar, embora isso não seja relevante).

Existem diretórios estruturados como abaixo

   /var/lib/bluetooth/
    ├── B8:27:EB:8E:A8:4D
    │   ├── 00:12:A1:12:09:51
    │   │   └── info
    │   ├── 34:88:5D:70:53:44
    │   │   └── info
    │   ├── cache
    │   │   ├── 00:12:A1:12:09:51
    │   │   ├── 34:88:5D:70:53:44
    │   │   ├── E4:CE:8F:03:00:6D
    │   │   └── F8:77:B8:AD:BC:AC
    │   └── settings

Eu tenho tentado manipulá-los, mas a Conclusão de Comando não funciona em nenhum dos nomes que contêm : . Isso é normal, e existe alguma maneira de eu conseguir que a complementação de comandos funcione. Digitar esses nomes enigmáticos é entediante e propenso a erros.

sudo ls /var/lib/bluetooth/B8:27:EB:8E:A8:4D/34:88 não mostra conclusão | sudo ls /var/lib/bluetooth/B8:27:EB:8E:A8:4D/34:88:5D:70:53:44 está OK

Uso de curingas, por exemplo 00* parece não funcionar também.

    
por Milliways 16.07.2017 / 03:43

1 resposta

3

sudo ls

Se você está tendo que usar sudo para obter acesso ao diretório para listá-lo, o que faz você pensar que seu shell pode listá-lo?

Isso não é um problema com a conclusão da linha de comando, curingas, cólons, aspas ou a versão do seu shell. É um problema de permissões muito simples.

Você não tem os direitos de acesso para listar esse diretório. Assim, seu shell, executado como sua conta, não pode. Como não pode listar o diretório, ele não pode completar nomes dentro dele ou expandir curingas.

    
por 16.07.2017 / 13:18