OS X terminal - colocar flags / opções no final do comando?

5

Existe uma maneira no OS X para colocar bandeiras no fim de um comando em vez de no começo? Na minha caixa Ubuntu, qualquer um deles funcionará, mas o OS X trata -la como um argumento de diretório no segundo exemplo:

ls -la .
ls . -la

Para este exemplo simples, não é grande coisa, mas é frustrante quando você erra um sinalizador em um comando longo com muitas opções / parâmetros e não pode simplesmente acertar e adicionar o sinalizador para executar novamente o comando.

Estou usando padrões do OS X do Matias , mas não vejo nada em lá isso mudaria esse comportamento.

    
por jjt 10.11.2013 / 06:07

1 resposta

4

Tudo isso depende da implementação do programa ou, mais especificamente, de como ele analisa opções. O OS X não usa a mesma implementação de ls - ele usa as versões BSD, enquanto o Ubuntu (e todos os Linuxes) usam o GNU coreutils version.

Seu comportamento não é algo que você pode mudar através de uma configuração, mas você pode instalar o GNU coreutils através do Homebrew :

brew install coreutils

Dessa forma, você poderia fazer a mesma coisa no OS X. Note que na instalação padrão do coreutils, todos os utilitários GNU serão prefixados com g . Então, você usaria gls em vez de ls . Você pode substituir esse comportamento adicionando-os ao seu caminho. Para fazer isso, adicione isso ao seu ~/.bash_profile :

export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"

Tudo isso sendo dito - e porque tudo depende da implementação do programa - você não pode esperar que isso funcione em todos os lugares. Alguns programas são rigorosos sobre onde as opções aparecem e outras não. Não é nada que o próprio SO imponha.

O que você também pode fazer para adicionar rapidamente outra opção é pressionar , Ctrl A , Opção . Isso levará você à palavra após o nome do comando, onde você pode adicionar a opção que você esqueceu.

Se não funcionar e imprimir alguns caracteres estranhos quando você pressionar Opção , certifique-se de que essas configurações de teclado estejam ativadas em Terminal.app preferências em Configurações »Teclado :

    
por 10.11.2013 / 09:33