understanding tilda, comando slash no bash

1

Eu tenho confusão no significado do comando ~/

se x é um diretório, então qual é o significado de ~/x no bash.

Por favor me guie

    
por Umar 23.06.2015 / 13:19

2 respostas

1

Unix shells normalmente, e bash, expandem ~ para o caminho para o diretório home do usuário atual. Esse caminho geralmente também está disponível como a variável de ambiente HOME , portanto, ~ e $HOME são normalmente equivalentes.

Então, quando você der um caminho ~/x , você está dizendo "o caminho para meu diretório pessoal, seguido de /x ". Você também pode escrever $HOME/x e obter o mesmo resultado.

Se o seu diretório home estiver em / home / umar, isso se expandirá para / home / umar / x, que é um caminho válido. Se x existir em seu diretório inicial, o arquivo ou diretório apontado também existirá e poderá ser usado (assumindo permissões suficientes, o que normalmente você terá em qualquer coisa em seu diretório pessoal).

    
por 23.06.2015 / 13:29
1

~ é um caminho relativo ao usuário e representa a raiz do diretório inicial dos usuários conectados (ou, mais especificamente, o caminho indicado pela configuração do ambiente do usuário conectado). se eu executar um sistema debian padrão como o usuário Bob, meu perfil / home existirá por padrão em /home/bob . Nesse cenário, ~ seria avaliado como /home/Bob . ~ é um atalho conveniente e também um meio de abstrair a localização raiz do perfil de usuários, se estiver em algum lugar imprevisível no sistema de arquivos.

Um benefício ao usar ~ é que você pode escrever scripts que são executados da mesma maneira para qualquer usuário, independentemente do nome de usuário ou do perfil armazenado no local padrão. Ao abstrair os caminhos reais do sistema de arquivos para o perfil do usuário, os scripts podem ser portáveis entre sistemas que manipulam perfis de maneira diferente ou permitem que um usuário mova o perfil para um local fora do padrão.

    
por 23.06.2015 / 13:30