Una ruta (o ruta de archivo , nombre de ruta o similar) es una cadena que identifica de forma única un elemento en un sistema de archivos jerárquico . Generalmente, una ruta se compone de nombres de directorios, especificadores de formato especiales y, opcionalmente , un nombre de archivo , todo ello separado por delimitadores . Este delimitador puede variar según el sistema operativo, pero los sistemas modernos más populares utilizan la barra inclinada/ , la barra invertida\ o los dos puntos: .
La distinción entre mayúsculas y minúsculas de los componentes de ruta individuales varía según el sistema operativo o las opciones especificadas al crear o usar por primera vez un sistema de archivos . En la práctica, esto significa que en un sistema que distingue entre mayúsculas y minúsculascomponent1 , los componentes de ruta con nombres como y Component1pueden coexistir en el mismo nivel de la jerarquía, mientras que en un sistema de archivos que no distingue entre mayúsculas y minúsculas , no pueden (se producirá un error). Los sistemas de archivos nativos de macOS y Windows no distinguen entre mayúsculas y minúsculas por defecto, mientras que los sistemas de archivos típicos de Linux sí lo hacen. [ 1 ] [ 2 ] [ 3 ]
Una ruta puede ser relativa o absoluta . Una ruta relativa es una ruta en relación con otra, generalmente el directorio de trabajo . Una ruta absoluta indica una ubicación independientemente del directorio actual; es decir, especifica todos los componentes de la ruta a partir de la raíz del sistema de archivos y no depende del contexto como lo hace una ruta relativa.
Las rutas también son esenciales para localizar recursos de red organizados jerárquicamente, como se puede ver en las URL y las rutas UNC .
Historia
Multics introdujo por primera vez un sistema de archivos jerárquico con directorios (separados por ">") a mediados de la década de 1960. [ 4 ]
Alrededor de 1970, Unix introdujo la barra inclinada /como separador de directorios.
Originalmente, MS-DOS no admitía directorios. Al agregar esta función, usar la barra diagonal estándar de Unix no era una buena opción, ya que muchos comandos existentes la usaban como prefijo de interruptor (por ejemplo, dir /w). En cambio, Unix usa el guion -como prefijo de interruptor. \Finalmente, se optó por la barra invertida debido a su similitud con la barra diagonal y a que no entraba en conflicto con los comandos existentes. Esta convención se mantuvo en Windows . Sin embargo, algunas áreas de Windows sí aceptan o entienden las barras diagonales de estilo Unix, como PowerShell . [ 5 ] [ 6 ]
Resumen de sistemas
La siguiente tabla describe la sintaxis de las rutas en sistemas operativos destacados:
En lenguajes de programación
La mayoría de los lenguajes de programación utilizan la representación de ruta del sistema subyacente, pero algunos también pueden ser independientes del sistema. [ 2 ]
Por ejemplo, este código C depende del sistema y puede fallar en sistemas opuestos: [ 1 ]
uxFile = fopen ( "project/readme.txt" , "r" ) // Falla en Windows winFile = fopen ( "C: \\ Program Files \\ bin \\ config.bat" , "r" ) // Falla en Unix- En Java , el campo File.separator almacena el separador dependiente del sistema. [ 20 ] Algunas funciones eliminan por completo la necesidad del separador.
import java.io.File ; import java.nio.file.Path ; import java.nio.file.Paths ; // ... File file = new File ( "path" + File.separator + "file.txt" ); Path path = Paths.get ( " path" , " file.txt" ) ;
from pathlib import Pathcon ( Ruta ( "ruta" ) / "a" / "archivo.txt" ) . abrir () como abrir_archivo : ...
En Unix
La mayoría de los sistemas tipo Unix utilizan una sintaxis similar. [ 22 ] POSIX permite tratar una ruta que comienza con dos barras diagonales de una manera definida por la implementación, [ 23 ] aunque en otros casos los sistemas deben tratar las barras diagonales consecutivas como una sola. [ 24 ]
Muchas aplicaciones en sistemas tipo Unix (por ejemplo, scp , rcp y rsync ) utilizan definiciones de recursos como hostname:/directorypath/resource, o esquemas URI con el nombre del servicio (aquí ' smb '), como smb://hostname/directorypath/resource. [ 3 ]
En macOS
Cuando macOS se estaba desarrollando, heredó algunas opciones de nombres de ruta de Classic Mac OS y del sistema tipo Unix NeXTSTEP . Classic Mac OS usa un :mientras que Unix y los sistemas tipo Unix usan un /como delimitador de ruta. Como solución, para preservar la compatibilidad del software y la familiaridad para los usuarios, y para permitir que los sistemas de archivos de disco sean utilizados tanto por Classic Mac OS como por macOS, algunas partes de macOS convierten entre dos puntos y barras en nombres de ruta; [ 25 ] por ejemplo, el sistema de archivos HFS+, de Classic Mac OS, convierte los dos puntos en los nombres de archivo en barras y, al leer un directorio, convierte las barras en los nombres de archivo en dos puntos, [ 26 ] y el kit de herramientas Carbon convierte los dos puntos en los nombres de ruta en barras y las barras en los nombres de ruta en dos puntos, y los vuelve a convertir cuando proporciona nombres de archivo y nombres de ruta al llamador. [ 26 ]
En DOS y Windows

DOS y Windows no tienen un único directorio raíz; existe un directorio raíz para cada unidad de almacenamiento, indicado con una letra de unidad o mediante una ruta UNC.
Las comparaciones de nombres de directorios y archivos no distinguen entre mayúsculas y minúsculas: "test.TXT" coincidiría con "Test.txt". [ 27 ]
Windows entiende los siguientes tipos de rutas:
- Rutas locales, como por ejemplo
C:\File: - Convención de nomenclatura universal (UNC) .
- Rutas de dispositivos DOS, como
\\.\C:\Fileo\\?\UNC\Server\Volume\File. La primera\\?\omite la normalización de la ruta. La segunda\\.\utiliza el espacio de nombres del dispositivo sin procesar. [ 27 ] [ 28 ]
En la API de Windows , las funciones de E/S de archivos se convierten automáticamente /a \(excepto cuando se usa el \\?\prefijo). Las rutas que usan las API estándar de Windows (que se remontan a DOS y Win9x ) estaban limitadas a 260 caracteres o menos, según lo definido por la variable de entorno MAX_PATH . Para la compatibilidad con versiones anteriores de aplicaciones heredadas, esta limitación no se eliminó hasta Windows 10, compilación 1607, cuando se pudo ampliar a 32 767. Windows NT siempre admitió internamente la longitud de ruta de 32 767, pero solo si se usaban las API Unicode o se forzaban las rutas UNC mediante el \\?\prefijo. [ 29 ]
PowerShell permite la interoperabilidad de barras diagonales para la retrocompatibilidad: [ 30 ]
PS C :\> Get-Content -Path "C:/ruta/al/archivo.txt"Aquí hay un texto dentro de un archivoError de caracteres Yen/won
Las versiones japonesa y coreana de Windows a menudo mostraban el carácter ' ¥ ' o el carácter ' ₩ ' en lugar del separador de directorio. Esto se debe a que, mientras que en las páginas de códigos ANSI el carácter en 0x5C era la barra invertida, en las páginas de códigos japonesa y coreana 0x5C correspondía a los símbolos del yen y el won, respectivamente. Por lo tanto, cuando se utilizaba el carácter de barra invertida, aparecían otros glifos. [ 31 ]
Convención de nombres universal
La Convención de Nombres Universales de Microsoft ( UNC , convención de nombres uniformes o ruta de red ) es una sintaxis para describir la ubicación de un recurso de red, como un archivo compartido, un directorio o una impresora. Una ruta UNC tiene la forma general: [ 2 ]
\\NombreDeEquipo\CarpetaCompartida\Recurso
Algunas interfaces de Windows permiten o requieren la sintaxis UNC para el acceso a recursos compartidos WebDAV , en lugar de una URL. La sintaxis UNC se extiende con componentes opcionales para indicar el uso de SSL y el número de puerto TCP/IP. Por lo tanto, la URL WebDAV se https://hostname:443/SharedFolder/Resourceconvierte en \\hostname@SSL@443\SharedFolder\Resource. [ 32 ]
Al visualizarse de forma remota, la carpeta compartida puede tener un nombre diferente al que ve un programa en el servidor al abrir "\SharedFolder". En realidad, el nombre de la carpeta compartida consiste en un nombre arbitrario asignado durante la creación del recurso compartido.
Dado que las rutas UNC comienzan con dos barras invertidas, y estas también se utilizan para secuencias de escape y en expresiones regulares , pueden surgir casos de problemas de codificación . Una cadena con caracteres de escape para una expresión regular que coincida con una ruta UNC comienza con ocho barras invertidas, ya que tanto la cadena como la\\\\\\\\ expresión regular requieren codificación. Esto se puede simplificar utilizando cadenas sin formato , como @"\\\\"en C#, Python o Perl .r'\\\\'qr{\\\\}
Véase también
- basename – Comando de shell para extraer el apellido de una ruta
- Archivo de dispositivo : interfaz para el controlador del dispositivo que aparece en el sistema de archivos.
- dirname – Comando de shell para extraer la parte de la ruta del directorio de una ruta.
- Sistema de archivos distribuido : tipo de sistema de archivos descentralizado. Páginas que muestran breves descripciones de los destinos de redirección.
- Nombre de archivo : cadena de texto utilizada para identificar de forma única un archivo informático.
- Estándar de jerarquía del sistema de archivos : estándar de Linux para la estructura de directorios.
- Nombre de archivo completo : nombre inequívoco en código informático. Páginas que muestran descripciones breves de los destinos de redirección.
- PATH (variable) – Variable de entorno del ordenador
- URL – Dirección en la World Wide Web
Notas
- 1 2 Compatibilidad limitada, puede que no funcione en todos los programas de Windows.
- ↑ En orden, los campos son
ddnn:[g,m]:filename.type;version - ↑
&,%, y@también se pueden usar para hacer referencia a la raíz del usuario actual, la biblioteca y el directorio actual, respectivamente. - ↑ Cuando se montan sistemas de archivos con extensiones de nombre de archivo,
.los caracteres se cambian a/, como en elejemplo Japan/gif anterior - ↑ Abreviatura de Tandem Advanced Command Language
- ↑
[prefix]puede ser un número (0–31),*(volumen de arranque) o@(directorio de inicio de AppleShare)
Referencias
- 1 2 "Formatos de sistema de archivos disponibles en la Utilidad de Discos en Mac" . Soporte técnico de Apple . Consultado el 12 de septiembre de 2025 .Incluye una descripción de APFS , el sistema de archivos predeterminado de macOS.
- 1 2 3 Matt Wojciakowski. "Sensibilidad a mayúsculas y minúsculas" . learn.microsoft.com . Consultado el 12 de septiembre de 2025 .
El sistema de archivos de Windows no distingue entre mayúsculas y minúsculas en los nombres de archivos y directorios. FOO.txt y foo.txt se tratarán como archivos equivalentes. El sistema de archivos de Linux sí distingue entre mayúsculas y minúsculas en los nombres de archivos y directorios. FOO.txt y foo.txt se tratarán como archivos distintos.
- 1 2 Day, Brittany. "Comprendiendo el debate sobre la distinción entre mayúsculas y minúsculas en el sistema de archivos Linux" . Seguridad de Linux . Consultado el 12 de septiembre de 2025 .
La distinción entre mayúsculas y minúsculas en Linux se refiere a que los archivos y directorios reconocen las diferencias entre caracteres en minúscula y mayúscula en los nombres de archivo. Por ejemplo, "File.txt" y "file.txt" se tratarían como dos archivos distintos. Este concepto es fundamental en los sistemas operativos tipo Unix, incluido Linux.
- ↑ Daley, RC; Neumann, PG (1965). "Un sistema de archivos de propósito general para almacenamiento secundario". Actas de la conferencia conjunta de informática de otoño del 30 de noviembre al 1 de diciembre de 1965, Parte I sobre XX - AFIPS '65 (Otoño, parte I) . Vol. Parte I. págs. 213–229 . doi : 10.1145/1463891.1463915 . S2CID 16236414 .
- ↑ "Por qué Windows usa barras invertidas y todo lo demás usa barras inclinadas" . 10 de febrero de 2014.
- ↑ "¿Por qué el carácter de ruta de DOS es "\"?" . 24 de junio de 2005.
- ↑ "Conceptos básicos del sistema de archivos" . developer.apple.com . 9 de abril de 2018. Consultado el 7 de septiembre de 2025 .
- ↑ "Acceso a recursos compartidos de red UNC (Windows)" . www.ibm.com . Consultado el 7 de septiembre de 2025 .
- ↑ Manual de operaciones del MCR RSX-11M-PLUS, versión 4.0 (PDF) . Digital Equipment Corporation . Agosto de 1987. 2.2 Especificaciones del archivo. AA-JS12A-TC.
- ↑ Herkert, Mark Klause Herman; Smith, Sheri Lynn (diciembre de 1985). Tutorial de Defense Data Network/TOPS-20. Un programa informático interactivo (PDF) (Informe técnico).
- ↑ Rabe, Bernhard (6 de junio de 2011). "OpenVMS y DCL en Alpha y VAX" (PDF) .
- ↑ "Manual de usuario de VSI OpenVMS" (PDF) . Software VMS . 2025. Consultado el 7 de septiembre de 2025 .
- ↑ Manual del usuario de ProDOS . Apple Computer . 1983. págs. 56–62 .
- ↑ El manual de AmigaDOS . Producido por Commodore-Amiga, Inc. Bantam Computer Books. Febrero de 1986. págs. 6–16 . ISBN 978-0-553-34294-9.
{{cite book}}: CS1 mantenimiento: otros ( enlace ) - ↑ "RISC OS PRMs: Volumen 2: Capítulo 44: Escritura de un sistema de archivos" . www.riscos.com Soporte técnico: Manual de referencia del programador . 3QD Developments Ltd. 3 de noviembre de 2015. Consultado el 7 de septiembre de 2025 .
- ↑ Introducción a Domain/OS (PDF) . Apollo Computer . Mayo de 1988. págs. 7-1 – 7-7 .
- ↑ Manual del sistema operativo CP/M (3.ª ed.). Investigación digital . Septiembre de 1983.
- ↑ "Introducción al Shell" . GitHub . OpenAtom OpenHarmony . Consultado el 13 de marzo de 2024 .
- ↑ "exec" . GitHub . OpenAtom OpenHarmony . Consultado el 14 de marzo de 2024 .
- ↑ "Especificación de la API de la versión 17 del Kit de Desarrollo de Java" . docs.oracle.com . Consultado el 7 de septiembre de 2025 .
- ↑ "os.path — Manipulaciones comunes de rutas de archivo" . Documentación de Python . Consultado el 7 de septiembre de 2025 .
- ↑ "Definición UNC" . ComputerLanguage.com .
- ↑ "Especificación de resolución de rutas de acceso POSIX" .
- ↑ "Definición de ruta de acceso POSIX" .
- ↑ Chan, Alex (1 de diciembre de 2021). "Una historia de dos caminos que separan" . alexwlchan.net . Consultado el 7 de septiembre de 2025 .
- 1 2 Sanches, Wilfredo (2000). "Los desafíos de la integración de los entornos Unix y Mac OS" .
- 1 2 De George, Andy (14 de diciembre de 2022). "Formatos de ruta de archivo en sistemas Windows" . Microsoft Docs . Recuperado el 14 de julio de 2019 .
- ↑ Ashcraft, Alvin (28 de agosto de 2024). "Nomenclatura de archivos, rutas y espacios de nombres" . Microsoft Docs .
- ↑ Ashcraft, Alvin (16 de julio de 2024). "Limitación de longitud máxima de ruta - Aplicaciones Win32" . learn.microsoft.com . Consultado el 7 de septiembre de 2025 .
- ↑ Wheeler, Sean. "about_Path_Syntax - PowerShell" . learn.microsoft.com . Consultado el 7 de septiembre de 2025 .
- ↑ "¿Cuándo una barra invertida no es una barra invertida?" . Aclarándolo todo .
- ↑ "Función DavGetHTTPFromUNCPath" . WebDAV: Windows. Microsoft Docs . Serie. 13 de octubre de 2021. Consultado el 4 de octubre de 2023 .
- Sistemas de archivos informáticos