Qual é a diferença entre esses comandos?

5

Qual é a diferença entre esses comandos: usei cd $HOME/directory/test/ antes de executar cada linha:

cd ~
cd /
cd ~/
cd -
cd --
cd /.
cd $HOME
cd $USR
cd

E tudo isso faz o mesmo comportamento. Qual a diferença?

    
por devWeek 14.06.2014 / 11:17

2 respostas

11

O comando simples cd <dir> , que altera o diretório para <dir> .

  • ~ indica $HOME diretório
  • / indica o diretório raiz
  • ~/ indica também o diretório $HOME . A única diferença é que isso mostra explicitamente que é um diretório (a barra final). cd ~/ e cd e cd ~ e cd $HOME fazem exatamente a mesma coisa.
  • cd - Altera o diretório de trabalho para o diretório de trabalho anterior .

Estes símbolos especiais "." (ponto) e ".." (ponto ponto) [Parâmetros Relativos] :

O "." símbolo refere-se ao diretório atual e o símbolo ".." se refere à corrente diretório pai do diretório.

$USER e $HOME são Variáveis de ambiente

$USER = O nome do usuário atualmente conectado. Essa variável é definida pelo sistema. Você provavelmente não deve alterar seu valor manualmente. (ex: myuser1)

$HOME = A localização do diretório pessoal do usuário logado atualmente (ex: / home / myuser1)

Recomenda-se usar cd "$HOME" ou cd "$USER" para que cd receba a entrada adequada em caso de espaço, etc.

    
por Pandya 14.06.2014 / 11:32
8
cd ~

Altera para o seu diretório pessoal. ~ no início de um caminho é uma abreviação que significa “o diretório pessoal do usuário”.

cd /

Altera para o diretório raiz / . Nada de especial acontecendo aqui.

cd ~/

O trailing / não faz diferença. Força ~ a ser interpretado como um diretório, mas cd faz isso de qualquer maneira. (Um / à direita faz diferença em um link simbólico para um diretório - compare ls -ld /var/spool/mail e ls -ld /var/spool/mail/ .)

cd -

Altera para o diretório em que você estava antes do comando cd anterior. Este é um caso especial do comando cd : quando seu argumento é - , ele faz isso.

cd --

Com a maioria dos comandos, incluindo cd , o argumento -- significa que qualquer coisa que vier depois será tratada como um operando em vez de uma opção. Então, por exemplo, cd -- -P significa mudar para um diretório chamado -P , enquanto cd -P passa a opção -P (o que faz diferença se o caminho que você muda for através de um link simbólico). Quando não há argumento após -- , o -- não faz nada; Este comando é equivalente a% normalcd. cd sem argumento, por sua vez, é um atalho para cd ~ .

cd /.

Equivalente a cd / , pois /. é o mesmo diretório que / ( . é mais útil sozinho, para significar "o diretório atual").

cd $HOME

Altera para o seu diretório pessoal. Isso falhará se o caminho para o seu diretório pessoal contiver um espaço ou outros caracteres. Sempre use aspas duplas em torno da variável substituições : cd "$HOME" .

cd $USR

Com toda a probabilidade, isso não faz nada porque nenhuma variável chamada USR está definida em seu shell, portanto, o comando que executa é apenas cd .

    
por Gilles 14.06.2014 / 15:22