¿Qué es un nombre de ruta completo?

19

Me gustaría entender qué significa realmente la ruta completa. Tengo un archivo en mi directorio de inicio llamado my_script. Supuse que el nombre completo de la ruta es ./my_script, lo que significa que está en la carpeta raíz, pero no estoy seguro. ¿Puede alguien por favor aclararme sobre eso?

    
pregunta sosytee 26.08.2013 - 13:11

5 respuestas

22

No, tu suposición es incorrecta. El nombre de ruta completo para el archivo my_script de su directorio personal es: /home/your_user_name/my_script . Cuando escribe ./my_script en el terminal, realmente intenta ejecutar el script (si es ejecutable) y se ejecutará solo si su directorio de trabajo actual es /home/your_user_name/ . Para ejecutar el script puedes usar también la ruta completa del archivo, como dije /home/your_user_name/my_script .

Se cree que un nombre de ruta UNIX se ve y se siente como una dirección de Internet, lo que da como resultado compatibilidad. El nombre completo de la ruta del directorio de trabajo actual se puede encontrar en la terminal usando el siguiente comando:

pwd

Para conocer la ruta completa del directorio de inicio de usuario, puede usar:

echo ~
echo $HOME
echo /home/$USER

Los tres comandos anteriores son equivalentes.

Para conocer el nombre completo de la ruta de un archivo, puede usar readlink command. Por ejemplo, en su caso:

cd ~
readlink -f my_script
    
respondido por el Radu Rădeanu 26.08.2013 - 14:46
6

El nombre completo de ruta realmente significa la ruta completa a ese archivo o carpeta del directorio / del sistema de archivos.

Por ejemplo, la ruta completa a su script es:

/home/your_username/my_script

O bien, el nombre completo de la ruta al ejecutable grep es

/bin/grep

En cuanto al ./my_script , el símbolo . representa el directorio actual, por lo que realmente dice "Buscar en el directorio actual un archivo o carpeta llamada my_script"

    
respondido por el hytromo 26.08.2013 - 13:16
3

Para comprender la ruta completa, primero debe conocer el punto de partida.

El directorio raíz / es el punto de partida de los sistemas operativos basados ​​en * nix. Contiene todos los otros directorios tanto del sistema como del usuario.

Directorio de inicio del usuario /home/USERNAME/ o ~/ para abreviar, contiene los archivos y directorios del usuario. Por ejemplo, Imágenes, Música, Documentos, etc. Cada uno de estos directorios se referencia como /home/USERNAME/DIRECTORY , por ejemplo, Documentos se encuentra en /home/USERNAME/Documents .

Al igual que con los directorios, los archivos se referencian de la misma manera, por ejemplo, se puede hacer referencia a un archivo llamado my_script ubicado en el directorio de inicio del usuario sosytee utilizando la ruta completa /home/sosytee/my_script o ~/my_script para abreviar .

Se puede hacer referencia / acceder a los archivos y directorios utilizando sus rutas completas desde cualquier lugar del sistema. Además, se puede acceder utilizando solo su nombre si está en el mismo directorio. Por ejemplo, si el usuario está en ~/ cuando usa el terminal, puede acceder al archivo my_script utilizando solo my_script .

Además, uno puede acceder a los directorios y archivos usando solo su nombre, si están ubicados en su variable PATH. Puedes ver qué es store en PATH usando echo $PATH .

Ejemplos simples sobre cómo acceder a los archivos usando la línea de comando:

  • El usuario actualmente está en /home/USERNAME/ y quiere usar el comando cat en un archivo ubicado en /home/USERNAME/Documents llamado foo.txt:

cat Documents/foo.txt

  • El usuario está dentro de ~/Documents y quiere ejecutar un script llamado foo.sh y ad ~/Scripts/Foo :

    sh ../Scripts/Foo/foo.sh

    o

    sh ~/Scripts/Foo/foo.sh

por supuesto, esto es solo un resumen.

Más información

respondido por el Stef K 26.08.2013 - 13:42
2

El nombre completo de la ruta es la ruta desde el directorio raíz (es decir, / ). ./my_script es el nombre de ruta relativo, porque la ruta se da relativamente al directorio actual, que se denota por . . Entonces, si está en su directorio de inicio, la ruta completa es el s.th. como /home/sosytee/my_script . Para su directorio de inicio existe el "atajo" ~ , lo que significa que también puede escribir ~/my_script . Pero eso, por supuesto, resolverá una ruta diferente para cada usuario.

Para ver la ruta completa de su llamada al directorio actual pwd .

    
respondido por el Nodebody 26.08.2013 - 13:17
2
  

Supuse que el nombre completo de la ruta es ./my_script

No, no lo es. Ese camino es relativo. El punto al principio indica el directorio actual:

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

Como puede ver, cambié el directorio y no se encontró my_script , lo que significa que ./my_script no es una ruta absoluta.

  

Supuse que el nombre completo de la ruta es ./my_script, lo que significa que está en la carpeta raíz, pero no estoy seguro.

De la Wikipedia :

  

[...] Una ruta completa o una ruta absoluta es una ruta que apunta a la misma ubicación en un sistema de archivos, independientemente del directorio de trabajo o las rutas combinadas.

Dado que ./my_script no cumple la condición de cuando puedo encontrar el my_script file , debemos inferir que es una ruta relativa.

  

Una ruta relativa es una ruta relativa al directorio de trabajo del usuario o la aplicación, por lo que no será necesario proporcionar la ruta absoluta completa.

    
respondido por el Braiam 27.08.2013 - 17:12

Lea otras preguntas en las etiquetas