
Gostaria que ls exibisse a data e a hora atuais como efeito colateral sempre que eu usasse ls
. Como faço para mudar o que um comando faz?
Responder1
Uma opção seria criar um alias que chame date
, por exemplo alias ls='date;ls'
, . Aqui está um exemplo:
$ touch a b c
$ ls
a b c
$ alias ls='date;ls'
$ ls
Mon Oct 14 10:37:29 BST 2013
a b c
Responder2
Defina a variável PS1 para o seu shell, este é o lugar onde você deve ver o que quiser no seu shell.
Exemplo:
export PS1="\t [\u@\h \W]\$ "
12:01:58 [user@host ~]$ ls /etc/fstab
/etc/fstab
12:02:00 [user@host ~]$ ls /etc/motd
/etc/motd
Responder3
Não entendo por que você gostaria de fazer isso. Talvez você possa compartilhar o que realmente está tentando alcançar e nós podemos ajudá-lo a encontrar uma solução melhor.
O que eu pessoalmente faço é editar minha linha PS1. Minha linha PS1 exibe muitas informações no prompt, mais ou menos assim:
Como você pode ver, ela exibe muitas informações além de data e hora. Para mostrar a data e a hora no seu PS1, adicione
\@
para exibir a hora e \d
para exibir a data.
Respondendo explicitamente à sua pergunta, você poderia criar um alias no seu arquivo .bashrc
. Para fazer isso, adicione a seguinte linha ao seu ~/.bashrc
:
alias ls='date && ls'
Você declarou que não deseja alterar o funcionamento de um comando. Embora aqui possa parecer o contrário, você deve entender como funcionam os aliases para compreender o fato de que isso realmente não altera o ls
comando. Se você executar ls de dentro de um script, o comando será invocado em um subshell que impedirá que o shell pai aplique suas regras de alias nele. Conseqüentemente, nenhuma chamada de script ls
será interrompida porque o formato de saída foi alterado.
EDITAR: Como algumas outras pessoas podem estar interessadas na própria linha PS1, você pode encontrar os detalhes relevantesaqui. Cuidado, ele é muito grande e se você tiver diretórios com milhares de arquivos, haverá um atraso perceptível no desempenho do shell.