É possível alterar o comportamento padrão de um comando?

4

É possível alterar o comportamento padrão de um comando?

Eu assumo que esta questão é bastante direta, mas deixe-me dar uma ilustração e um exemplo.

Enquanto conectado a alguns servidores via autocompletar SSH por meio de guia, não funciona tornando os longos comandos longos e tediosos. Por exemplo, aqui está um comando ls:

ls -lah --group-directories-first

Isso está dizendo para listar todos os arquivos, incluindo os arquivos ocultos em uma lista de cima para baixo em um formato legível por humanos, enquanto classifica os arquivos dos diretórios, tornando os diretórios em primeiro lugar.

Existe uma maneira de configurar este comando ls para executar o comando acima simplesmente digitando ls . Por padrão, ls lista todos os arquivos. Deve haver um local onde o comando 'ls' esteja localizado para que, quando executado, o sistema saiba onde procurar para encontrá-lo, veja qual é seu comportamento padrão e, em seguida, execute-o com base nas especificações dos 'ls' fornecidos comando.

Por fim, posso alterar a saída ou a função padrão do comando ls?

    
por Daniel Morris 16.03.2017 / 22:37

1 resposta

9

A maneira típica de fazer isso em sistemas no estilo Unix ou Linux é usar aliases de shell:

alias ls='ls -lah --group-directories-first'

Observe que isso substituirá qualquer alias ls existente, portanto, talvez você queira verificar a saída de

alias ls

primeiro e combine o acima; por exemplo

alias ls='ls -lah --group-directories-first --color=tty'

Para torná-lo permanente, adicione-o ao seu arquivo .bashrc em seu diretório pessoal (supondo que você esteja usando o Bash, o que provavelmente acontecerá se você estiver descobrindo tudo isso).

Alterar o comportamento padrão de maneira extensiva pode acabar confundindo, então sugiro criar um novo comando usando um alias; Eu tenho

alias l='ls -lah --group-directories-first'

por exemplo. Isso também permite criar outros aliases: esse l alias usa o que é definido como ls e, se for um alias, que é usado (então não há necessidade de repetir a opção --color=tty neste caso). / p>

Para remover um alias, use unalias :

unalias ls
    
por 16.03.2017 / 22:40