O que é um nome de caminho completo?

17

Eu gostaria de entender o que o nome completo do caminho realmente significa. Eu tenho um arquivo no meu diretório inicial chamado my_script. Eu assumi que o nome do caminho completo é ./my_script, o que significa que está na pasta raiz, mas não tenho certeza. Alguém pode me esclarecer sobre isso?

    
por sosytee 26.08.2013 / 15:11

5 respostas

20

Não, sua suposição está errada. O nome completo do caminho para o arquivo my_script do seu diretório pessoal é: /home/your_user_name/my_script . Quando você digita ./my_script no terminal, você realmente tenta executar o script (se é executável) e ele será executado somente se o seu diretório de trabalho atual for /home/your_user_name/ . Para executar o script, você também pode usar o caminho completo do arquivo, como eu disse /home/your_user_name/my_script .

Acredita-se que um nome de caminho UNIX pareça e se pareça com endereços da Internet, resultando em compatibilidade. O nome completo do caminho do diretório de trabalho atual pode ser encontrado no terminal usando o seguinte comando:

pwd

Para descobrir o caminho completo para o diretório inicial do usuário, você pode usar:

echo ~
echo $HOME
echo /home/$USER

Os três comandos acima são equivalentes.

Para descobrir o nome completo do caminho para um arquivo, você pode usar o comando readlink . Por exemplo, no seu caso:

cd ~
readlink -f my_script
    
por Radu Rădeanu 26.08.2013 / 16:46
6

O nome completo do caminho realmente significa o caminho completo para esse arquivo ou pasta no diretório / do sistema de arquivos.

Por exemplo, o caminho completo para o seu script é:

/home/your_username/my_script

Ou, o nome completo do caminho para o executável grep é

/bin/grep

Quanto ao ./my_script , o símbolo . representa o diretório atual, então você realmente diz "Procure no diretório atual por um arquivo ou pasta chamado my_script"

    
por hytromo 26.08.2013 / 15:16
3

Para entender o caminho completo, você deve primeiro conhecer o ponto de partida.

O diretório raiz / é o ponto de partida dos sistemas operacionais baseados em * nix. Ele contém todos os outros diretórios tanto do sistema quanto do usuário.

O diretório inicial do usuário /home/USERNAME/ ou ~/ para abreviar contém arquivos e diretórios do usuário. Por exemplo, Imagens, Música, Documentos, etc. Cada um desses diretórios é referenciado como /home/USERNAME/DIRECTORY , por exemplo, Documentos está localizado em /home/USERNAME/Documents .

Assim como os diretórios, os arquivos são referenciados da mesma maneira, por exemplo, um arquivo chamado my_script , localizado no diretório inicial do usuário sosytee , pode ser referenciado usando o caminho completo /home/sosytee/my_script ou ~/my_script para breve .

Ambos os arquivos e diretórios podem ser referenciados / acessados ​​usando seus caminhos completos de qualquer lugar no sistema. Além disso, pode-se acessá-los usando apenas seu nome, se estiver no mesmo diretório. Por exemplo, se o usuário estiver em ~/ ao usar o terminal, ele poderá acessar o arquivo my_script usando apenas my_script .

Além disso, pode-se acessar diretórios e arquivos usando apenas o nome deles, se eles forem colocados em sua variável PATH. Você pode ver o que é armazenar no PATH usando echo $PATH .

Exemplos simples de como acessar arquivos usando a linha de comando:

  • O usuário está atualmente em /home/USERNAME/ e deseja usar o comando cat em um arquivo localizado em /home/USERNAME/Documents chamado foo.txt:

cat Documents/foo.txt

  • O usuário está dentro de ~/Documents e deseja executar um script chamado foo.sh localizado ad ~/Scripts/Foo :

    sh ../Scripts/Foo/foo.sh

    ou

    sh ~/Scripts/Foo/foo.sh

por todos os meios isso é apenas um resumo.

Mais informações

por Stef K 26.08.2013 / 15:42
2

O nome do caminho completo é o caminho do diretório raiz (por exemplo, / ). ./my_script é o nome do caminho relativo, porque o caminho é dado relativamente ao diretório atual, que é indicado por . . Então, se você está no seu diretório home, o caminho completo é s.th. como /home/sosytee/my_script . Para o seu diretório pessoal, existe o "atalho" ~ , o que significa que você também pode escrever ~/my_script . Mas isso, naturalmente, resolverá um caminho diferente para cada usuário.

Para ver o caminho completo do seu diretório atual, chame pwd .

    
por Nodebody 26.08.2013 / 15:17
2
  

Eu assumi que o nome do caminho completo é ./my_script

Não, não é. Esse caminho é relativo. O ponto no início indica o diretório atual:

$ ls ./my_script
my_script
$ cd ..
$ ls ./my_script
ls: cannot access ./my_script: No such file or directory

Como você pode ver, alterei o diretório e o my_script não foi encontrado, o que significa que ./my_script não é um caminho absoluto.

  

Eu assumi que o nome do caminho completo é ./my_script, o que significa que ele está na pasta raiz, mas não tenho certeza.

Na Wikipédia :

  

[...] Um caminho completo ou caminho absoluto é um caminho que aponta para o mesmo local em um sistema de arquivos, independentemente do diretório de trabalho ou dos caminhos combinados.

Como o ./my_script não preenche a condição de que sempre que sou eu posso encontrar o arquivo my_script , devemos inferir que esse é um caminho relativo.

  

Um caminho relativo é um caminho relativo ao diretório de trabalho do usuário ou aplicativo, portanto, o caminho completo absoluto não precisará ser fornecido.

    
por Braiam 27.08.2013 / 19:12