Você pode fazer isso com uma função:
$ cdls() { cd "$@" && ls; }
O &&
significa ' cd
para um diretório e, se for bem-sucedido (por exemplo, o diretório existe), execute ls
'. Usar o operador &&
é melhor do que usar um operador ;
ponto-e-vírgula entre os dois comandos, como em { cd "$@" ; ls; }
. Esse segundo comando executará ls
, independentemente de o cd
funcionar ou não. Se o cd
falhar, ls
imprimirá o conteúdo do seu diretório atual, o que será confuso para o usuário. Como prática recomendada, use &&
e não ;
.
$ cdls /var/log
CDIS.custom fsck_hfs.log monthly.out system.log
$ pwd
/var/log
Em geral, é uma prática ruim renomear um comando que já existe, especialmente para um comando comumente chamado como cd
. Em vez disso, crie um novo comando com um nome diferente. Se você sobrescreve cd
com uma função ou alias que também é chamada cd
, o que aconteceria quando você digitasse um diretório com 100.000 arquivos? Existem muitos utilitários que usam cd
e podem ficar confusos com esse comportamento incomum. Se você usar uma conta compartilhada (como root
quando estiver trabalhando com outros administradores do sistema), pode ser muito perigoso substituir um comando existente porque o ambiente é diferente do que as pessoas esperam.