Outra maneira, você pode defini-lo como uma função em seu .bashrc
:
lsl() {
{ echo Permissions links Owner Group Size Last_modMonth Last_modTime Last_modTime Filename;
ls -l; } |
column -t |
awk 'NR!~/^(2)$/'
ls -l | head -1
}
O Stormvirux forneceu este belo script em outro tópico. Ele coloca títulos de colunas na saída de uma listagem ls -l
:
#!/bin/bash
{ echo Permissions links Owner Group Size Last_modMonth Last_modTime Last_modTime Filename; ls -l ; } | column -t | awk 'NR!~/^(2)$/'
ls -l | head -1
Apenas executá-lo na linha de comando funciona muito bem. Eu gosto e quero usá-lo como um alias para, digamos lsl
em um sistema Linux rodando bash.
Mas eu não posso, para a vida de mim, descobrir como fazer os delimitadores funcionarem, então isso é interpretado corretamente. Quando tento apenas usar o comando alias na linha de comando (o que faço antes de submetê-lo a um arquivo de configuração como .bashrc
), ele não funciona. Eu recebo vários erros quando tento várias maneiras de empacotá-lo para que ele seja interpretado corretamente.
Alguém pode me dizer como fazer isso funcionar como um alias ou me indicar uma boa referência que possa me dizer claramente o que preciso fazer para que algo assim funcione como um alias?
Outra maneira, você pode defini-lo como uma função em seu .bashrc
:
lsl() {
{ echo Permissions links Owner Group Size Last_modMonth Last_modTime Last_modTime Filename;
ls -l; } |
column -t |
awk 'NR!~/^(2)$/'
ls -l | head -1
}
Se você precisar fazer isso como um alias:
alias lsl='{ echo Permissions links Owner Group Size Last_modMonth Last_modTime Last_modTime Filename; ls -l ; } | column -t | awk '\''NR!~/^(2)$/'\'';ls -l | head -1'
Precisamos escapar das aspas simples internas com barras invertidas para que não sejam interpretadas como interrompendo a string.
Se usarmos aspas duplas, o !
será interpretado como uma expansão de histórico e precisa ainda mais escapar, o que é provavelmente o problema mais confuso que você acabou com (algo como " bash: !~/^: event not found
", que é um jargão incompreensível).
O acima funcionará, mas seria melhor colocar esse arquivo em algum lugar do caminho e torná-lo executável. Crie, digamos, ~/.local/bin
e um script lsl
com exatamente o conteúdo de sua postagem lá dentro, depois chmod +x ~/.local/bin/lsl
e adicione uma linha ao seu .bashrc
:
export PATH="$HOME/.local/bin:$PATH"
para garantir que os executáveis nesse diretório sejam encontrados. Então você pode simplesmente escrever lsl
em qualquer lugar para executar o código. Essa abordagem é mais sustentável e mais fácil de entender.