Os comandos não alteram as regras de preenchimento automático. As regras de autocomplete são definidas para o shell usando scripts e funções e carregadas quando o shell é iniciado. Eu vou usar bash
como exemplo, já que estou familiarizado com isso mais do que as outras camadas.
As regras para preenchimento automático em bash
são definidas no script em /etc/bash_completion
e complementadas por scripts adicionais no diretório /etc/bash_completion.d/
. Essas regras são originadas em bash
quando você faz o login.
bash
tem um comando complete
que permite definir facilmente as regras para conclusão. Para ver todas as regras já definidas, você pode executar complete -p
.
Agora, a maioria das distros já definirá essas regras para você. Portanto, quando você digita tar <TAB>
, já existe uma regra definida pela sua distro para mostrar o arquivo que corresponde ao padrão *.tar*
e as opções do comando tar
como sugestões de preenchimento automático. É por isso que quando você digita tar
, ele te dá as opções A c d r t u x
, mas para tar -zvxf
, não tem, pois não pode haver mais opções depois disso. Agora, se você sair com um arquivo .tar.gz
nesse diretório, ele sugerirá que, como opção de preenchimento automático, a próxima coisa após a opção f
seja um arquivo tar.
O /etc/bash_completion
padrão não fornece opções como sugestões e não filtra os tipos de arquivo. Nesse caso, você também verá o arquivo foo.txt
como uma sugestão para tar
.
Você pode ler sobre como criar suas próprias regras aqui - link e link