fbpx
Wikipedia

Working directory

In computing, the working directory of a process is a directory of a hierarchical file system, if any,[nb 1] dynamically associated with each process. It is sometimes called the current working directory (CWD), e.g. the BSD getcwd[1] function, or just current directory.[2] When the process refers to a file using a simple file name or relative path (as opposed to a file designated by a full path from a root directory), the reference is interpreted relative to the working directory of the process. So for example a process with working directory /rabbit-shoes that asks to create the file foo.txt will end up creating the file /rabbit-shoes/foo.txt.

In operating systems

In most computer file systems, every directory has an entry (usually named ".") which points to the directory itself.

In most DOS and UNIX command shells, as well as in the Microsoft Windows command line interpreters cmd.exe and Windows PowerShell, the working directory can be changed by using the CD or CHDIR commands. In Unix shells, the pwd command outputs a full pathname of the working directory; the equivalent command in DOS and Windows is CD or CHDIR without arguments (whereas in Unix, cd used without arguments takes the user back to his/her home directory).

The environment variable PWD (in Unix/Linux shells), or the pseudo-environment variables CD (in Windows COMMAND.COM and cmd.exe, but not in OS/2 and DOS), or _CWD, _CWDS, _CWP and _CWPS (under 4DOS, 4OS2, 4NT etc.)[3] can be used in scripts, so that one need not start an external program. Microsoft Windows file shortcuts have the ability to store the working directory.

COMMAND.COM in DR-DOS 7.02 and higher provides ECHOS, a variant of the ECHO command omitting the terminating linefeed.[4][3] This can be used to create a temporary batchjob storing the working directory in an environment variable like CD for later use, for example:

ECHOS SET CD=> SETCD.BAT CHDIR >> SETCD.BAT CALL SETCD.BAT DEL SETCD.BAT 

Alternatively, under Multiuser DOS and DR-DOS 7.02 and higher, various internal and external commands support a parameter /B (for "Batch").[5] This modifies the output of commands to become suitable for direct command line input (when redirecting it into a batch file) or usage as a parameter for other commands (using it as input for another command). Where CHDIR would issue a directory path like C:\DOS, a command like CHDIR /B would issue CHDIR C:\DOS instead, so that CHDIR /B > RETDIR.BAT would create a temporary batchjob allowing to return to this directory later on.

The working directory is also displayed by the $P[nb 2] token of the PROMPT command [6] To keep the prompt short even inside of deep subdirectory structures, the DR-DOS 7.07 COMMAND.COM supports a $W[nb 2] token to display only the deepest subdirectory level. So, where a default PROMPT $P$G would result f.e. in C:\DOS> or C:\DOS\DRDOS>, a PROMPT $N:$W$G would instead yield C:DOS> and C:DRDOS>, respectively. A similar facility (using $W and $w) was added to 4DOS as well.[3]

Under DOS, the absolute paths of the working directories of all logical volumes are internally stored in an array-like data structure called the Current Directory Structure (CDS), which gets dynamically allocated at boot time to hold the necessary number of slots for all logical drives (or as defined by LASTDRIVE).[7][8][9] This structure imposes a length-limit of 66 characters on the full path of each working directory, and thus implicitly also limits the maximum possible depth of subdirectories.[7]DOS Plus and older issues of DR DOS (up to DR DOS 6.0, with BDOS 6.7 in 1991) had no such limitation[8][10][3] due to their implementation using a DOS emulation on top of a Concurrent DOS- (and thus CP/M-86-)derived kernel, which internally organized subdirectories as relative links to parent directories instead of as absolute paths.[8][10] Since PalmDOS (with BDOS 7.0) and DR DOS 6.0 (1992 update with BDOS 7.1) and higher switched to use a CDS for maximum compatibility with DOS programs as well, they faced the same limitations as present in other DOSes.[8][10]

In programming languages

Most programming languages provide an interface to the file system functions of the operating system, including the ability to set (change) the working directory of the program.

In the C language, the POSIX function chdir() effects the system call which changes the working directory.[11] Its argument is a text string with a path to the new directory, either absolute or relative to the old one. Where available, it can be called by a process to set its working directory.

There is the same function in other languages. In Visual Basic it is usually spelled CHDIR().

Unlike the Windows API or POSIX C function, neither the Java programming language nor the Java Virtual Machine supports chdir() directly;[clarification needed] a change request remained open for over a decade while the team responsible for Java considered the alternatives, though by 2008 the request was denied after only limited support was introduced (affecting first java.lang.Runtime and later, java.lang.ProcessBuilder ).[12]

See also

Notes

  1. ^ There are operating systems that support a hierarchical file system but have no concept of "working directory"; for example Texas Instruments' DX10, used for the TI-990 series.
  2. ^ a b In the same way as $O works as alternative to $P under DR-DOS COMMAND.COM, $W has an alias $Y except for that it gets suppressed on floppies in order to avoid critical error messages or delays when trying to retrieve the path of a non-inserted floppy.

References

  1. ^ getcwd(3)
  2. ^ "Microsoft Windows – SetCurrentDirectory function". Microsoft. from the original on 2018-05-27. Retrieved 2017-05-27.
  3. ^ a b c d Brothers, Hardin; Rawson, Tom; Conn, Rex C.; Paul, Matthias R.; Dye, Charles E.; Georgiev, Luchezar I. (2002-02-27). 4DOS 8.00 online help.
  4. ^ DR-DOS 7.03 WHATSNEW.TXT — Changes from DR-DOS 7.02 to DR-DOS 7.03. Caldera, Inc. 1998-12-24. from the original on 2019-04-08. Retrieved 2019-04-08.
  5. ^ CCI Multiuser DOS 7.22 GOLD Online Documentation. Concurrent Controls, Inc. (CCI). 1997-02-10. HELP.HLP.
  6. ^ . Caldera, Inc. 1998 [1993, 1997]. Archived from the original on 2016-11-04. Retrieved 2013-08-10.
  7. ^ a b Schulman, Andrew; Brown, Ralf D.; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994) [November 1993]. Undocumented DOS: A programmer's guide to reserved MS-DOS functions and data structures - expanded to include MS-DOS 6, Novell DOS and Windows 3.1 (2 ed.). Reading, Massachusetts: Addison Wesley. ISBN 0-201-63287-X. ISBN 978-0-201-63287-3. (xviii+856+vi pages, 3.5-inch floppy) Errata:
  8. ^ a b c d Paul, Matthias R. (1997-07-30) [1994-05-01]. NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds. MPDOSTIP. Release 157 (in German) (3 ed.). from the original on 2017-09-10. Retrieved 2014-08-06. (NB. NWDOSTIP.TXT is a comprehensive work on Novell DOS 7 and OpenDOS 7.01, including the description of many undocumented features and internals. It is part of the author's yet larger MPDOSTIP.ZIP collection maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the NWDOSTIP.TXT file.)
  9. ^ Brown, Ralf D.; et al., eds. (2000-07-16). "Ralf Brown's Interrupt List" (61 ed.). INTER61.
  10. ^ a b c Paul, Matthias R. (1997-06-07) [April 1994]. "Chapter 1.3.xi: Überlange Pfade". NWDOS7UN.TXT — Zusammenfassung der dokumentierten und undokumentierten Fähigkeiten von Novell DOS 7. MPDOSTIP. Release 85 (in German). from the original on 2016-11-07. Retrieved 2016-11-07.
  11. ^ "The Open Group Base Specifications Issue 6 and IEEE Std 1003.1" (Issue 6, 2004 ed.). The IEEE and The Open Group. 2004 [2001]. from the original on 2018-02-09. Retrieved 2018-05-27.
  12. ^ "JDK-4045688: Add chdir or equivalent notion of changing working directory". Bug Database. Oracle (Sun Microsystems). 2008-08-18 [1997-04-17]. from the original on 2017-10-19. Retrieved 2011-02-20.

Further reading

  • Chen, Raymond (2010-10-11). "Why does each drive have its own current directory?". The New Old Thing. Microsoft. from the original on 2016-04-12. Retrieved 2017-05-27.
  • Chen, Raymond (2010-05-06). "What are these strange =C: environment variables?". The New Old Thing. Microsoft. from the original on 2018-05-27. Retrieved 2017-05-27.

External links

  • Working Directory (wd) at Github – a software package that tracks commonly used directories in a bash session

working, directory, computing, working, directory, process, directory, hierarchical, file, system, dynamically, associated, with, each, process, sometimes, called, current, working, directory, getcwd, function, just, current, directory, when, process, refers, . In computing the working directory of a process is a directory of a hierarchical file system if any nb 1 dynamically associated with each process It is sometimes called the current working directory CWD e g the BSD getcwd 1 function or just current directory 2 When the process refers to a file using a simple file name or relative path as opposed to a file designated by a full path from a root directory the reference is interpreted relative to the working directory of the process So for example a process with working directory rabbit shoes that asks to create the file foo txt will end up creating the file rabbit shoes foo txt Contents 1 In operating systems 2 In programming languages 3 See also 4 Notes 5 References 6 Further reading 7 External linksIn operating systems EditFurther information cd command and operating system shell In most computer file systems every directory has an entry usually named which points to the directory itself In most DOS and UNIX command shells as well as in the Microsoft Windows command line interpreters cmd exe and Windows PowerShell the working directory can be changed by using the CD or CHDIR commands In Unix shells the pwd command outputs a full pathname of the working directory the equivalent command in DOS and Windows is CD or CHDIR without arguments whereas in Unix cd used without arguments takes the user back to his her home directory The environment variable PWD in Unix Linux shells or the pseudo environment variables CD in Windows COMMAND COM and cmd exe but not in OS 2 and DOS or CWD CWDS CWP and CWPS under 4DOS 4OS2 4NT etc 3 can be used in scripts so that one need not start an external program Microsoft Windows file shortcuts have the ability to store the working directory COMMAND COM in DR DOS 7 02 and higher provides ECHOS a variant of the ECHO command omitting the terminating linefeed 4 3 This can be used to create a temporary batchjob storing the working directory in an environment variable like CD for later use for example ECHOS SET CD gt SETCD BAT CHDIR gt gt SETCD BAT CALL SETCD BAT DEL SETCD BAT Alternatively under Multiuser DOS and DR DOS 7 02 and higher various internal and external commands support a parameter B for Batch 5 This modifies the output of commands to become suitable for direct command line input when redirecting it into a batch file or usage as a parameter for other commands using it as input for another command Where CHDIR would issue a directory path like C DOS a command like CHDIR B would issue CHDIR C DOS instead so that CHDIR B gt RETDIR BAT would create a temporary batchjob allowing to return to this directory later on The working directory is also displayed by the P nb 2 token of the a href PROMPT DOS command html class mw redirect title PROMPT DOS command PROMPT a command 6 To keep the prompt short even inside of deep subdirectory structures the DR DOS 7 07 COMMAND COM supports a W nb 2 token to display only the deepest subdirectory level So where a default PROMPT P G would result f e in C DOS gt or C DOS DRDOS gt a PROMPT N W G would instead yield C DOS gt and C DRDOS gt respectively A similar facility using W and w was added to 4DOS as well 3 Under DOS the absolute paths of the working directories of all logical volumes are internally stored in an array like data structure called the Current Directory Structure CDS which gets dynamically allocated at boot time to hold the necessary number of slots for all logical drives or as defined by LASTDRIVE 7 8 9 This structure imposes a length limit of 66 characters on the full path of each working directory and thus implicitly also limits the maximum possible depth of subdirectories 7 DOS Plus and older issues of DR DOS up to DR DOS 6 0 with BDOS 6 7 in 1991 had no such limitation 8 10 3 due to their implementation using a DOS emulation on top of a Concurrent DOS and thus CP M 86 derived kernel which internally organized subdirectories as relative links to parent directories instead of as absolute paths 8 10 Since PalmDOS with BDOS 7 0 and DR DOS 6 0 1992 update with BDOS 7 1 and higher switched to use a CDS for maximum compatibility with DOS programs as well they faced the same limitations as present in other DOSes 8 10 In programming languages EditMost programming languages provide an interface to the file system functions of the operating system including the ability to set change the working directory of the program In the C language the POSIX function chdir effects the system call which changes the working directory 11 Its argument is a text string with a path to the new directory either absolute or relative to the old one Where available it can be called by a process to set its working directory There is the same function in other languages In Visual Basic it is usually spelled CHDIR Unlike the Windows API or POSIX C function neither the Java programming language nor the Java Virtual Machine supports chdir directly clarification needed a change request remained open for over a decade while the team responsible for Java considered the alternatives though by 2008 the request was denied after only limited support was introduced affecting first java lang Runtime and later java lang ProcessBuilder 12 See also EditHome directory Root directory Parent directory chroot Linux systems Load drive a different but related concept Long filename LFN Notes Edit There are operating systems that support a hierarchical file system but have no concept of working directory for example Texas Instruments DX10 used for the TI 990 series a b In the same way as O works as alternative to P under DR DOS COMMAND COM W has an alias Y except for that it gets suppressed on floppies in order to avoid critical error messages or delays when trying to retrieve the path of a non inserted floppy References Edit getcwd 3 Microsoft Windows SetCurrentDirectory function Microsoft Archived from the original on 2018 05 27 Retrieved 2017 05 27 a b c d Brothers Hardin Rawson Tom Conn Rex C Paul Matthias R Dye Charles E Georgiev Luchezar I 2002 02 27 4DOS 8 00 online help DR DOS 7 03 WHATSNEW TXT Changes from DR DOS 7 02 to DR DOS 7 03 Caldera Inc 1998 12 24 Archived from the original on 2019 04 08 Retrieved 2019 04 08 CCI Multiuser DOS 7 22 GOLD Online Documentation Concurrent Controls Inc CCI 1997 02 10 HELP HLP Caldera DR DOS 7 02 User Guide Caldera Inc 1998 1993 1997 Archived from the original on 2016 11 04 Retrieved 2013 08 10 a b Schulman Andrew Brown Ralf D Maxey David Michels Raymond J Kyle Jim 1994 November 1993 Undocumented DOS A programmer s guide to reserved MS DOS functions and data structures expanded to include MS DOS 6 Novell DOS and Windows 3 1 2 ed Reading Massachusetts Addison Wesley ISBN 0 201 63287 X ISBN 978 0 201 63287 3 xviii 856 vi pages 3 5 inch floppy Errata 1 2 a b c d Paul Matthias R 1997 07 30 1994 05 01 NWDOS TIPs Tips amp Tricks rund um Novell DOS 7 mit Blick auf undokumentierte Details Bugs und Workarounds MPDOSTIP Release 157 in German 3 ed Archived from the original on 2017 09 10 Retrieved 2014 08 06 NB NWDOSTIP TXT is a comprehensive work on Novell DOS 7 and OpenDOS 7 01 including the description of many undocumented features and internals It is part of the author s yet larger MPDOSTIP ZIP collection maintained up to 2001 and distributed on many sites at the time The provided link points to a HTML converted older version of the NWDOSTIP TXT file 3 Brown Ralf D et al eds 2000 07 16 Ralf Brown s Interrupt List 61 ed INTER61 a b c Paul Matthias R 1997 06 07 April 1994 Chapter 1 3 xi Uberlange Pfade NWDOS7UN TXT Zusammenfassung der dokumentierten und undokumentierten Fahigkeiten von Novell DOS 7 MPDOSTIP Release 85 in German Archived from the original on 2016 11 07 Retrieved 2016 11 07 The Open Group Base Specifications Issue 6 and IEEE Std 1003 1 Issue 6 2004 ed The IEEE and The Open Group 2004 2001 Archived from the original on 2018 02 09 Retrieved 2018 05 27 JDK 4045688 Add chdir or equivalent notion of changing working directory Bug Database Oracle Sun Microsystems 2008 08 18 1997 04 17 Archived from the original on 2017 10 19 Retrieved 2011 02 20 Further reading EditChen Raymond 2010 10 11 Why does each drive have its own current directory The New Old Thing Microsoft Archived from the original on 2016 04 12 Retrieved 2017 05 27 Chen Raymond 2010 05 06 What are these strange C environment variables The New Old Thing Microsoft Archived from the original on 2018 05 27 Retrieved 2017 05 27 External links EditWorking Directory wd at Github a software package that tracks commonly used directories in a bash session Retrieved from https en wikipedia org w index php title Working directory amp oldid 1127176012, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.