Ruta (informática)
# Ruta (informática)

En informática, una ruta (path, en inglés) es la forma de referenciar un archivo informático o directorio en un sistema de archivos de un sistema operativo determinado.

Una ruta señala la localización exacta de un archivo o directorio mediante una cadena de caracteres concreta. Esta puede ser de diversas formas dependiendo del sistema operativo y del sistema de archivos en cuestión. En líneas generales se compondrá de los nombres de los directorios que conforman el camino hasta el archivo o directorio a lo largo del árbol de directorios, y finalmente estará el nombre del archivo o directorio que se quiere referenciar. Estos nombres estarán separados por un carácter delimitador que usualmente será la barra inversa (\) en sistemas operativos MS-DOS y Windows (de Microsoft) o la barra diagonal (/) en sistemas UNIX o Linux.

## Modos de expresar una ruta

* En la mayoría de los sistemas operativos y sistemas de archivos, una ruta se puede expresar en forma relativa o en forma absoluta.

### Ruta absoluta

Las rutas absolutas señalan la ubicación de un archivo o directorio desde el directorio raíz del sistema de archivos.

Por ejemplo, en un sistema *nix, /home/dir1/arc1.fil es una ruta absoluta, que señala la ubicación del archivo arc1.fil desde la raíz del sistema de archivos.

En sistemas Windows, una ruta absoluta sería C:\usuarios\juan\arc1.fil.

Una ruta UNC también es considerada como absoluta, por ejemplo \\servidor\carpeta\arc1.fil

### Ruta relativa

Las rutas relativas señalan la ubicación de un archivo o directorio a partir de la posición actual del sistema operativo en el sistema de archivos.

Por ejemplo, es una ruta relativa dir1/arc1.fil que señala al archivo arc1.fil dentro del directorio dir1 en la ubicación actual. En sistemas tipo UNIX, la ruta ~/ es una ruta relativa que lleva al directorio personal del usuario que ha insertado la ruta relativa; por ejemplo, si el usuario Fulano tiene una imagen en su directorio personal, esta imagen podría tener dos rutas de acceso, una relativa y una absoluta:

* La absoluta: /home/fulano/imagen.jpg
* La relativa: ~/imagen.jpg

En este caso, la ruta relativa sólo puede ser verdaderamente válida si el sistema está ubicado en el usuario de Fulano. En este mismo caso, ~/ sería el sinónimo relativo de la ruta /home/fulano/.

También se puede crear, borrar, copiar, etcétera, directorios y archivos con este tipo de ruta desde una interfaz de línea de comandos.

Algunos ejemplos:

* mkdir ~/Fotos
* chmod 777 ~/
* rm ~/foto.jpg

## Representaciones de rutas por sistema operativo y shell

| Sistema operativo | Shell | Directorio raíz | Separador | Directorio padre | Ejemplos |
| - | - | - | - | - | - |
| Unix | Shell de Unix | / | / | .. | /home/user/docs/Letter.txt |
| DOS | COMMAND.COM | [letra unidad:]\ | / or \ (nota: command.com no trata / como un separador de directorios) | .. | C:\USER\DOCS\LETTER.TXT A:PICTURE.JPG |
| OS/2 | cmd.exe | [letra unidad:]\ | / or \ | .. | C:\user\docs\Letter.txt A:Picture.jpg |
| Microsoft Windows | cmd.exe | [letra unidad:]/ o [letra unidad:]\ nota: para el comando CD, / es interpretado como ruta relativa (igual que [letra unidad:].\) | / o \ (nota: para el comando CD, / es interpretado como ruta relativa (igual que .\)) | .. | C:\user\docs\Letter.txt A:Picture.jpg |
| Microsoft Windows | Windows PowerShell | [nombre unidad:]/ o [nombre unidad:]\ o [PSSnapIn name]\[PSProvider name:][:PSDrive root] | / or \ | .. | C:\user\docs\Letter.txt UserDocs:/Letter.txt Variable:PSVersionTable Registry::HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft.PowerShell.Security\Certificate::CurrentUser\ |
| TOPS-20 | DCL | [nombre dispositivo:] | . | | PS:<USER.DOCS>LETTER.TXT,4 |
| RSX-11 | DCL | [nombre dispositivo:] | | | DR0:[30,12]LETTER.TXT;4 |
| OpenVMS | DCL | [nombre dispositivo:] o [NODO["password del usuario"]]::[nombre dispositivo]: | . | [-] | SYS$SYSDEVICE:[USER.DOCS]PHOTO.JPG GEIN::[.DRAFTS]LETTER.TXT;4 |
| Mac OS Clásico | | [nombre unidad o volumen]: | : | :: | Macintosh HD:Documents:Letter |
| AmigaOS | Amiga CLI / AmigaShell | [nombre de unidad, volumen o nombre asignado:] | / | / | |
| RISC OS | Ventana de tareas | [tipo_fs[#opción]:][:número de unidad o nombre de disco.]$ nota: &, % y @ pueden usarse como referencia al directorio raíz del usuario actual, ubicación de las librerías y el directorio actual respectivamente. | . | ^ | ADFS::MyDrive.$.Documents.Letter Net#MainServer::DataDrive.$.Main.sy10823 LanMan::WindowsC.$.Pictures.Japan/gif NFS:&.!Choices ADFS:%.IfThere Cuando se montan sistemas de ficheros con extensiones de nombres, se cambian los caracteres '.' por '/' |
| Symbian OS | Administrador de ficheros | \ | \ | | \user\docs\Letter.txt |
| Domain/OS | Shell | // | / | | |
| MenuetOS | CMD | / | / | | |
| Stratus VOS | Intérprete de comandos VOS | %[nombre_sistema]#[nombre_módulo]> | > | < | |
| NonStop Kernel | TACL Tandem Advanced Command Language | No hay directorio raíz | . | No hay directorio padre | \NODE.$DISK.SUBVOL.FILE \NODE.$DEVICE \NODE.$DEVICE.#SUBDEV.QUALIFIER |
| CP/M | CCP | [letra unidad:] | No hay subdirectorios | No hay directorio padre | A:LETTER.TXT |

## Uniform Naming Convention

Microsoft Windows definió UNC, siglas de Universal Naming Convention o Uniform Naming Convention (convención universal de nombres), para crear una sintaxis común de cómo especificar la localización de un recurso de red, tal como un fichero compartido, un directorio o una impresora.

La sintaxis de UNC para los sistemas Windows tiene la forma genérica: \\NombreHost\CarpetaCompartida\Recurso

Nota: la sintaxis de UNC aparece escrita a veces con barras diagonales (/). Microsoft Windows trata ambas barras (\ y /) como equivalentes, pero muchos programas aceptan únicamente barras inversas o barras invertidas (\), y otros aceptan sólo dobles barras invertidas (por ejemplo \\\\ComputerName\\SharedFolder), especialmente en constantes de texto, debido al uso estándar de la barra invertida como carácter de escape.

La CarpetaCompartida no tiene que tener obligatoriamente el mismo nombre cuando es visto remotamente que cuando lo ve un programa en el propio servidor. En su lugar, el nombre CarpetaCompartida consiste en un nombre arbitrario asignado a la carpeta, cuando se define su "compartición".

Algunas interfaces Microsoft Windows también aceptan el "Long UNC": \\?\UNC\NombreHost\CarpetaCompartida\Recurso

Microsoft Windows usa los siguientes tipos de rutas:

* Sistema de ficheros local. Por ejemplo: C:\Fichero,
* Uniform Naming Convention (UNC). Por ejemplo: \\Servidor\Volumen\Fichero,
* Long UNC o UNCW. Por ejemplo: \\?\C:\Fichero o \\?\UNC\Servidor\Volumen\Fichero.

En versiones de Windows anteriores a Windows XP, sólo las API que aceptan "Long UNC" pueden aceptar más de 260 caracteres.

La shell en Windows XP y Windows Vista, explorer.exe, permite nombres de ruta de hasta 248 caracters.

## Ejemplos

### Estilo Unix

El siguiente ejemplo muestra el comportamiento de un sistema de ficheros tipo Unix, tal y como se podría ejecutar desde un terminal:

Situado en este directorio de trabajo: /users/mark/

Cambiar directorio de trabajo a: /users/mark/bobapples

En ese momento, se puede representar la ruta relativa del directorio al que se quiere ir como: ./bobapples o más corto: bobapples y la ruta absoluta como: /users/mark/bobapples

Tomando bobapples como la ruta relativa para el directorio elegido, para cambiar el directorio actual a bobapples se puede teclear en la línea de comandos: cd bobapples

Tecleando dos signos de punto (..) llevan un nivel atrás en la jerarquía de directorios, para indicar el directorio padre; un punto (.) representa el directorio actual. Ambos pueden ser componentes de una compleja ruta relativa (por ejemplo ../mark/./bobapples), donde . sólo o al principio de la ruta relativa representa el directorio de trabajo. (Usar ./foo para referirse al fichero foo del directorio actual puede a veces diferenciarlo del recurso foo encontrado en un directorio por defecto; o con otro ejemplo, para ver una página de manual Unix específica en lugar de la instalada en el sistema),

### Estilo Microsoft DOS o Windows

* Rutas de archivos:
   * D:\command.com
   * /home/miusuario/documento.doc
* Rutas a directorios:
   * C:\windows\
   * /home/nombre-usuario/
