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 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 sistemas operativos

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 lleva al usuario de regreso 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, _CWDSy _CWP( _CWPSen 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.

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:\DOSun 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:\DOSCHDIR /B > RETDIR.BAT

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 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 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 presentes en otros DOS. . [8] [10]

En lenguajes de programación

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.Pathinterfaz o mediante la java.io.Fileclase. El directorio de trabajo no se puede cambiar. [12]

Ver 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 $PDR -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 archivo no insertado. flexible.

Referencias

  1. ^ getcwd(3)
  2. ^ "Microsoft Windows: función SetCurrentDirectory". Microsoft . Archivado desde el original el 27 de mayo de 2018 . Consultado el 27 de mayo de 2017 .
  3. ^ Hermanos abcd, Hardin; Rawson, Tom ; Conn, Rex C .; Pablo, Matías R.; Tinte, 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 multiusuario DOS 7.22 GOLD . Controles concurrentes, Inc. (CCI). 10 de febrero de 1997. AYUDA.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, Andrés; Marrón, Ralf D .; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994) [noviembre de 1993]. DOS indocumentado: una guía para programadores sobre funciones y estructuras de datos reservadas de MS-DOS, ampliada para incluir MS-DOS 6, Novell DOS y Windows 3.1 (2 ed.). Lectura, 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 completo sobre Novell DOS 7 y OpenDOS 7.01, que incluye la descripción de muchas características e 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. ^ Marrón, Ralf D .; et al., eds. (2000-07-16). "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. ^ "Las especificaciones básicas de Open Group Número 6 y IEEE Std 1003.1" (Número 6, edición de 2004). El IEEE y el Open Group . 2004 [2001]. Archivado desde el original el 9 de febrero de 2018 . Consultado el 27 de mayo de 2018 .
  12. ^ "JDK-4045688: agregue chdir o una noción equivalente de cambiar el directorio de trabajo". Base de datos de errores . Oráculo ( Sun Microsystems ). 2008-08-18 [1997-04-17]. Archivado desde el original el 19 de octubre de 2017 . Consultado el 20 de febrero de 2011 .

Otras lecturas

enlaces externos