Onde o comando cd está configurado para cd $ HOME quando nenhum caminho é especificado?

0

Os seguintes comandos fazem o mesmo

  • $ cd
  • $ cd $HOME
  • $ cd ~
  • $ cd /home/user

Em três deles, o caminho é relativamente especificado. Mas como ou por que, na Terra, o simples cd abre o diretório inicial do usuário?

    
por tachomi 08.03.2016 / 23:49

2 respostas

2

Este é um comportamento documentado no padrão POSIX :

  1. If no directory operand is given and the HOME environment variable is set to a non-empty value, the cd utility shall behave as if the directory named in the HOME environment variable was specified as the directory operand.
    
por 08.03.2016 / 23:51
1

Esse recurso vem do shell Bourne que foi introduzido em Versão 7 do Unix em 1979. Nesse sistema, HOME foi documentado como " O argumento padrão (diretório inicial) para o comando cd ”. O predecessor do shell Bourne (o shell Thompson apenas imprimiu uma mensagem de erro se você usou chdir sem argumento (o shell Bourne também encurtou o nome do comando para cd ).

Eu não tenho uma fonte autorizada para escolher isso, mas por que não? cd sem argumento não estava fazendo nada útil, e o diretório inicial é aquele que os usuários geralmente precisam voltar. A sintaxe ~ ainda não existia, por isso cd era um atalho para cd $HOME .

Os sistemas Linux geralmente não possuem páginas man para comandos que só estão disponíveis como shell builtins . Eles estão documentados no manual de cada shell.

    
por 09.03.2016 / 01:30

Tags