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