Working directory

Source: Wikipedia, the free encyclopedia.

In

BSD getcwd[1] function, or just current directory.[2] When a 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

arguments (whereas in Unix, cd used without arguments takes the user back to their home directory
).

The

file shortcuts
have the ability to store the working directory.

COMMAND.COM in

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

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

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]
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

functions of the operating system, including the ability to set (change) the working directory of the program.

In the

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 are similar functions in other languages. For example, in Visual Basic it is usually spelled CHDIR().

In Java, the working directory can be obtained through the java.nio.file.Path interface, or through the java.io.File class. The working directory cannot be changed.[12]

See also

Notes

References

  1. ^ getcwd(3)
  2. ^ "Microsoft Windows – SetCurrentDirectory function". Microsoft. Archived from the original on 2018-05-27. Retrieved 2017-05-27.
  3. ^
    4DOS 8.00 online help
    .
  4. Caldera, Inc. 1998-12-24. Archived
    from the original on 2019-04-08. Retrieved 2019-04-08.
  5. 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. ^
    ISBN 978-0-201-63287-3. (xviii+856+vi pages, 3.5-inch floppy) Errata: [1][2]
  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 (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]
  9. 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 (in German). Archived from the original on 2016-11-07. Retrieved 2016-11-07.
  11. IEEE and The Open Group. 2004 [2001]. Archived
    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]. Archived from the original on 2017-10-19. Retrieved 2011-02-20.

Further reading

External links