En informática , el directorio de trabajo de un proceso es un directorio de un sistema de archivos jerárquico , si lo hay, [nb 1] asociado dinámicamente con el proceso. A veces se le llama directorio de trabajo actual (CWD) , por ejemplo, función BSD getcwd[1] , o simplemente directorio actual . [2] Cuando un proceso hace referencia a un archivo utilizando un nombre de archivo simple o una ruta relativa (a diferencia de un archivo designado por una ruta completa desde un directorio raíz ), la referencia se interpreta en relación con el directorio de trabajo del proceso. Entonces, por ejemplo, un proceso con un directorio de trabajo /rabbit-shoesque solicita crear el archivo foo.txtterminará creando el archivo /rabbit-shoes/foo.txt.
En la mayoría de los sistemas de archivos informáticos, cada directorio tiene una entrada (normalmente denominada " .") que apunta al directorio mismo.
En la mayoría de los shells de comandos de DOS y UNIX , así como en los intérpretes de línea de comandos de Microsoft Windows cmd.exe y Windows PowerShell , el directorio de trabajo se puede cambiar usando los comandos o . En shells de Unix , el comando genera una ruta completa del directorio de trabajo; el comando equivalente en DOS y Windows es o sin argumentos (mientras que en Unix, usado sin argumentos devuelve al usuario a su directorio de inicio ).CDCHDIR pwdCDCHDIRcd
La variable de entorno PWD (en shells de Unix/Linux), o las variables de pseudoentorno CD (en Windows COMMAND.COM y cmd.exe , pero no en OS/2 y DOS), o _CWD,, y (en 4DOS , 4OS2 , 4NT , etc. .) [3] se puede utilizar en scripts, por lo que no es necesario iniciar un programa externo. Los accesos directos a archivos de Microsoft Windows tienen la capacidad de almacenar el directorio de trabajo._CWDS_CWP_CWPS
COMMAND.COM en DR-DOS 7.02 y superiores proporciona ECHOS, una variante del ECHOcomando que omite el salto de línea final. [4] [3] Esto se puede usar para crear un trabajo por lotes temporal que almacena el directorio de trabajo en una variable de entorno CDpara su uso posterior, por ejemplo:
ECO CONFIGURAR CD=> SETCD.BATCHDIR >> SETCD.BATLLAMAR A SETCD.BATDEL SETCD.BAT
Alternativamente, en Multiuser DOS y DR-DOS 7.02 y superiores, varios comandos internos y externos admiten un parámetro /B(para "Batch"). [5] Esto modifica la salida de los comandos para que sea adecuada para la entrada directa de la línea de comandos (cuando se redirige a un archivo por lotes) o para su uso como parámetro para otros comandos (usándolo como entrada para otro comando). Donde CHDIRse emitiría una ruta de directorio como , en su lugar se emitiría C:\DOS
un comando como , de modo que se crearía un trabajo por lotes temporal que permitiría volver a este directorio más adelante.CHDIR /BCHDIR C:\DOS
CHDIR /B > RETDIR.BAT
El directorio de trabajo también se muestra mediante el token $P[nb 2] del PROMPT
comando [6]. Para mantener el mensaje breve incluso dentro de estructuras de subdirectorios profundas, DR-DOS 7.07 COMMAND.COM admite un token $W[nb 2] para mostrar solo el nivel de subdirectorio más profundo. Entonces, cuando un incumplimiento PROMPT $P$Gdaría como resultado fe en C:\DOS>
o C:\DOS\DRDOS>
, a PROMPT $N:$W$Gen cambio produciría C:DOS>
y C:DRDOS>
, respectivamente. También se agregó una función similar (usando $Wy ) a 4DOS . [3]$w
En DOS, las rutas absolutas de los directorios de trabajo de todos los volúmenes lógicos se almacenan internamente en una estructura de datos similar a una matriz llamada Estructura de directorio actual (CDS), que se asigna dinámicamente en el momento del arranque para contener la cantidad necesaria de ranuras para todos los volúmenes lógicos. unidades (o según lo definido por LASTDRIVE ). [7] [8] [9] Esta estructura impone un límite de longitud de 66 caracteres en la ruta completa de cada directorio de trabajo y, por lo tanto, implícitamente también limita la profundidad máxima posible de los subdirectorios. [7] DOS Plus y versiones anteriores de DR DOS (hasta DR DOS 6.0 , con BDOS 6.7 en 1991) no tenían tal limitación [8] [10] [3] debido a su implementación utilizando una emulación de DOS sobre un sistema concurrente. Núcleo derivado de DOS (y por lo tanto de CP/M-86 ), que organizaba internamente los subdirectorios como enlaces relativos a los directorios principales en lugar de como rutas absolutas . [8] [10] Desde que PalmDOS (con BDOS 7.0) y DR DOS 6.0 (actualización de 1992 con BDOS 7.1) y superiores cambiaron para usar un CDS para máxima compatibilidad con programas de DOS, se enfrentaron a las mismas limitaciones que están presentes en otros DOS. . [8] [10]
La mayoría de los lenguajes de programación proporcionan una interfaz para las funciones del sistema de archivos del sistema operativo, incluida la capacidad de configurar (cambiar) el directorio de trabajo del programa.
En el lenguaje C , la función POSIXchdir()
efectúa la llamada al sistema que cambia el directorio de trabajo. [11] Su argumento es una cadena de texto con una ruta al nuevo directorio, ya sea absoluta o relativa al anterior. Cuando esté disponible, un proceso puede llamarlo para configurar su directorio de trabajo.
Hay funciones similares en otros idiomas. Por ejemplo, en Visual Basic suele escribirse CHDIR()
.
En Java , el directorio de trabajo se puede obtener a través de la java.nio.file.Path
interfaz o mediante la java.io.File
clase. El directorio de trabajo no se puede cambiar. [12]
MPDOSTIP.ZIP
colección aún más grande del autor mantenida hasta 2001 y distribuida en muchos sitios en ese momento. El enlace proporcionado apunta a una versión anterior del NWDOSTIP.TXT
archivo convertida a HTML). [3]