O que eu faço se eu quiser executar o comando ls toda vez que eu faço um cd em algum diretório?

2

Na maioria das vezes, quando faço o comando cd , também faço um ls para ver quais outros arquivos ou pastas estão nesse diretório. Então eu quero executar ls toda vez que eu mudar o diretório. Eu sei que posso fazer cd foo && ls , mas é realmente necessário fazer && ls everytime?

    
por Santosh Kumar 11.07.2012 / 04:14

3 respostas

4

Existem duas maneiras de fazer isso. Você pode criar um alias como LnxSlck postado ou outro está criando uma função em .bash_aliases

mycd(){ cd "" && ls; }
    
por Flint 11.07.2012 / 06:28
1

Eu uso o seguinte, o que não envolve adicionar novos comandos:

cd() {
  builtin cd "$@"
  local status=$?
  [ $status -eq 0 ] && ls
  return $status
}

Isso faz com que cd funcione da mesma forma que antes, exceto que também há um ls .

Observe as seguintes implicações: Os outros exemplos não permitem argumentos para cd . Embora, reconhecidamente, esses argumentos sejam incomuns, este é um substituto compatível com 100%. E como ele retorna o status de saída de cd , ele não interromperá os scripts.

Há uma ressalva aqui. Se você não quiser essa funcionalidade, será necessário chamar builtin cd . Mas minha experiência em usar essa função por muitos anos é que tais ocorrências são raras, ocorrendo principalmente em scripts, e a conveniência de não precisar digitar algo como mycd toda vez que você deseja alterar diretórios supera em muito a menor desvantagem de digitar builtin cd uma vez em uma lua azul.

    
por Scott Severance 12.07.2012 / 00:02
0

Você pode fazer um alias para cd e adicioná-lo ao seu * bash_profile * ou bashrc , algo como:

alias 'mycd'='cd  && ls'

coloque isso no seu .bashrc . No entanto, é recomendável armazenar todos os seus aliases no arquivo ~/bash_aliases , portanto, crie o arquivo usando touch ~/.bash_aliases , se ainda não estiver presente, e use-o para armazenar todos os aliases .

    
por LnxSlck 11.07.2012 / 04:20