stringtranslate.com

Directorio de trabajo

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 lo llama directorio de trabajo actual (CWD) , por ejemplo, la 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 directorio de trabajo /rabbit-shoesque solicita crear el archivo foo.txtterminará creando el archivo /rabbit-shoes/foo.txt.

En sistemas operativos

En la mayoría de los sistemas de archivos de computadora, cada directorio tiene una entrada (generalmente llamada " .") que apunta al directorio mismo.

En la mayoría de los intérpretes de línea 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 utilizando los comandos o . En los intérpretes de línea de comandos 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, utilizado sin argumentos lleva al usuario de regreso a su directorio de inicio ).CDCHDIR pwdCDCHDIRcd

La variable de entorno PWD (en los 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, _CWDS, _CWPy _CWPS(en 4DOS , 4OS2 , 4NT , etc.) [3] se pueden utilizar en scripts, de modo que no sea necesario iniciar un programa externo. Los accesos directos a archivos de Microsoft Windows tienen la capacidad de almacenar el directorio de trabajo.

COMMAND.COM en DR-DOS 7.02 y versiones superiores proporciona ECHOS, una variante del ECHOcomando que omite el salto de línea de terminación. [4] [3] Esto se puede utilizar para crear un trabajo por lotes temporal que almacene el directorio de trabajo en una variable de entorno como CDpara su uso posterior, por ejemplo:

ESTABLECER ECOS CD=> SETCD.BATCHDIR >> SETCD.BATLlamar a SetCD.batDEL SETCD.BAT

Alternativamente, bajo Multiuser DOS y DR-DOS 7.02 y superior, 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 (al redirigirla a un archivo por lotes) o para su uso como parámetro para otros comandos (usándola como entrada para otro comando). Donde CHDIRemitiría una ruta de directorio como C:\DOS, CHDIR /Bse emitiría CHDIR C:\DOSen su lugar un comando como , de modo que CHDIR /B > RETDIR.BATcrearía un trabajo por lotes temporal que permitiría regresar a este directorio más tarde.

El directorio de trabajo también se muestra mediante el token $P[nb 2] del PROMPTcomando [6] Para mantener el mensaje breve incluso dentro de estructuras de subdirectorios profundos, el DR-DOS 7.07 COMMAND.COM admite un token $W[nb 2] para mostrar solo el nivel de subdirectorio más profundo. Por lo tanto, donde un valor predeterminado PROMPT $P$Gdaría como resultado fe C:\DOS>o C:\DOS\DRDOS>, a PROMPT $N:$W$Gdaría como resultado C:DOS>y , respectivamente. También se agregó C:DRDOS>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 todas las unidades lógicas (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 ediciones 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 núcleo derivado de Concurrent 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] Dado que PalmDOS (con BDOS 7.0) y DR DOS 6.0 (actualización de 1992 con BDOS 7.1) y versiones superiores cambiaron a utilizar un CDS para lograr la máxima compatibilidad con programas DOS también, enfrentaron las mismas limitaciones que están presentes en otros DOS. [8] [10]

En lenguajes de programación

La mayoría de los lenguajes de programación proporcionan una interfaz a las funciones del sistema de archivos del sistema operativo, incluida la capacidad de establecer (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 llamarla para establecer su directorio de trabajo.

Existen funciones similares en otros lenguajes. Por ejemplo, en Visual Basic se suele escribir CHDIR().

En Java , el directorio de trabajo se puede obtener a través de la java.nio.file.Pathinterfaz o a través de la java.io.Fileclase. El directorio de trabajo no se puede cambiar. [12]

Véase también

Notas

  1. ^ Hay sistemas operativos que admiten un sistema de archivos jerárquico pero no tienen el concepto de "directorio de trabajo"; por ejemplo, el DX10 de Texas Instruments , utilizado para la serie TI-990 .
  2. ^ ab De la misma manera que $Ofunciona como alternativa a $Pbajo DR-DOS COMMAND.COM , $Wtiene un alias $Yexcepto que se suprime en los disquetes para evitar mensajes de error críticos o demoras al intentar recuperar la ruta de un disquete no insertado.

Referencias

  1. ^ getcwd(3)
  2. ^ "Microsoft Windows – Función SetCurrentDirectory". Microsoft . Archivado desde el original el 2018-05-27 . Consultado el 2017-05-27 .
  3. ^ abcd Brothers, Hardin; Rawson, Tom ; Conn, Rex C .; Paul, Matthias R.; Dye, Charles E.; Georgiev, Luchezar I. (27 de febrero de 2002). Ayuda en línea de 4DOS 8.00 .
  4. ^ DR-DOS 7.03 WHATSNEW.TXT: cambios de DR-DOS 7.02 a DR-DOS 7.03. Caldera, Inc. 1998-12-24. Archivado desde el original el 8 de abril de 2019 . Consultado el 8 de abril de 2019 .
  5. ^ Documentación en línea de CCI Multiuser DOS 7.22 GOLD . Concurrent Controls, Inc. (CCI). 10 de febrero de 1997. HELP.HLP.
  6. ^ Guía del usuario de Caldera DR-DOS 7.02. Caldera, Inc. 1998 [1993, 1997]. Archivado desde el original el 4 de noviembre de 2016. Consultado el 10 de agosto de 2013 .
  7. ^ ab Schulman, Andrew; Brown, Ralf D .; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994) [noviembre de 1993]. DOS no documentado: guía del programador para funciones y estructuras de datos reservadas de MS-DOS, ampliada para incluir MS-DOS 6, Novell DOS y Windows 3.1 (2.ª edición). Reading, Massachusetts: Addison Wesley . ISBN 0-201-63287-X. ISBN 978-0-201-63287-3(xviii+856+vi páginas, disquete de 3,5 pulgadas) Erratas: [1][2]
  8. ^ abcd Paul, Matthias R. (30 de julio de 1997) [1 de mayo de 1994]. NWDOS-TIP: consejos y trucos para Novell DOS 7, con un clic para deshacer detalles, errores y soluciones. MPDOSTIP (en alemán) (3 ed.). Archivado desde el original el 10 de septiembre de 2017 . Consultado el 6 de agosto de 2014 .(NB. NWDOSTIP.TXT es un trabajo exhaustivo sobre Novell DOS 7 y OpenDOS 7.01, que incluye la descripción de muchas características y componentes internos no documentados. Es parte de la MPDOSTIP.ZIPcolecció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.TXTarchivo convertida a HTML). [3]
  9. ^ Brown, Ralf D. ; et al., eds. (16 de julio de 2000). "Lista de interrupciones de Ralf Brown" (61.ª ed.). INTER61 .
  10. ^ abc Paul, Matthias R. (7 de junio de 1997) [abril de 1994]. "Capítulo 1.3.xi: Überlange Pfade". NWDOS7UN.TXT - Zusammenfassung der dokumentierten und undokumentierten Fähigkeiten von Novell DOS 7. MPDOSTIP (en alemán). Archivado desde el original el 7 de noviembre de 2016 . Consultado el 7 de noviembre de 2016 .
  11. ^ "Especificaciones básicas de The Open Group, número 6 y IEEE Std 1003.1" (número 6, edición de 2004). The IEEE y The Open Group . 2004 [2001]. Archivado desde el original el 9 de febrero de 2018. Consultado el 27 de mayo de 2018 .
  12. ^ "JDK-4045688: Agregar chdir o una noción equivalente para cambiar el directorio de trabajo". Base de datos de errores . Oracle ( Sun Microsystems ). 2008-08-18 [1997-04-17]. Archivado desde el original el 2017-10-19 . Consultado el 2011-02-20 .

Lectura adicional

Enlaces externos