Eu acidentalmente destruí meu cd
comando.
Tentei executar automaticamente ls
após cd
ser chamado.
Encontrei um post dizendo que tenho que executar alias cd='/bin/cd && /bin/ls'
, mas agora recebo -bash: /bin/cd: No such file or directory
e não consigo mais mudar de diretório.
Seu sistema (como muitos sistemas Unix) não possui um
cd
comando externo (pelo menos não nesse caminho). Mesmo que tivesse um, ols
daria a listagem do diretório original. Um comando externo nunca pode alterar o diretório do processo de chamada (seu shell) 1 .Remova o alias do ambiente com
unalias cd
(e também remova sua definição de qualquer arquivo de inicialização do shell aos quais você possa tê-lo adicionado).Com uma função shell, você pode fazê-la funcionar
cd
normalmente, com uma invocação extra dels
no final se forcd
bem-sucedida:ou,
Isso chamaria o
cd
comando embutido em seu shell com os mesmos argumentos de linha de comando que você deu à função. Se a mudança de diretório for bem-sucedida, ols
arquivo será executado.O
command
comando impede que o shell execute a função recursivamente.A definição da função (como escrito acima) iria para o arquivo de inicialização do seu shell. Com
bash
, isso pode ser~/.bashrc
. A definição da função estaria então ativa na próxima nova sessão de shell interativa . Se você quiser que ela esteja ativa agora , execute a definição da função como está no prompt do shell interativo, que a definirá em sua sessão interativa atual.1 Em sistemas onde
cd
está disponível como um comando externo, este comando também não altera o diretório para o processo de chamada. O único uso real para tal comando é fornecer conformidade com POSIX e atuar como um teste para verificar se a mudança de diretório para um determinado seria possível .Consegui resolvê-lo removendo o alias novamente com
unalias cd
Isso aconteceu porque: