pushd and popd

In computing, pushd and popd are commands used to work with the command line directory stack.[1][2] They are available on command-line interpreters such as 4DOS, Bash,[3] C shell, tcsh, Hamilton C shell, KornShell, cmd.exe, and PowerShell for operating systems such as DOS, Microsoft Windows, ReactOS,[4] and Unix-like systems.

pushd & popd
Original author(s)Bill Joy
Developer(s)Various open-source and commercial developers
Operating systemUnix and Unix-like, DOS, Windows, ReactOS
TypeCommand

Overview

The pushd command saves the current working directory in memory so it can be returned to at any time, optionally changing to a new directory. The popd command returns to the path at the top of the directory stack.[5][6] This directory stack is accessed by the command dirs in Unix or Get-Location -stack in Windows PowerShell.

The first Unix shell to implement a directory stack was Bill Joy's C shell. The syntax for pushing and popping directories is essentially the same as that used now.[7][8]

Both commands are available in FreeCOM, the command-line interface of FreeDOS.[9]

In Windows PowerShell, pushd is a predefined command alias for the Push-Location cmdlet and popd is a predefined command alias for the Pop-Location cmdlet. Both serve basically the same purpose as the pushd and popd commands.

Syntax

Pushd

pushd [path | ..]

Arguments:

  • path This optional command-line argument specifies the directory to make the current directory. If path is omitted, the path at the top of the directory stack is used, which has the effect of toggling between two directories.

Popd

popd

Examples

Unix-like

[user@server /usr/ports] $ pushd /etc
/etc /usr/ports
[user@server /etc] $ popd
/usr/ports
[user@server /usr/ports] $

Microsoft Windows and ReactOS

C:\Users\root>pushd C:\Users
C:\Users>popd
C:\Users\root>

DOS batch file

@echo off
rem This batch file deletes all .txt files in a specified directory
pushd %1
del *.txt
popd
echo All text files deleted in the %1 directory
gollark: I might be wiser in a few ways, but mostly I would have advanced future knowledge™.
gollark: I would then use this to subtly influence future (past) events I don't like, such as "brexit".
gollark: I could just attain money via ??? child things, spend it on some bitcoins (or even *mine* it, since it took a while for people to catch onto GPUs then ASICs) and then have 19024719827490 capital.
gollark: I have vague knowledge of deep learning things which are really recent and would probably substantially accelerate progress if brought to the past somehow. More importantly, though, I would simply buy bitcoin.
gollark: Anyway, if *I* were magically sent back in time I could do better.

See also

References

Further reading

  • Frisch, Æleen (2001). Windows 2000 Commands Pocket Reference. O'Reilly. ISBN 978-0-596-00148-3.
  • McElhearn, Kirk (2006). The Mac OS X Command Line: Unix Under the Hood. John Wiley & Sons. ISBN 978-0470113851.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.