pushd and popd

From Wikipedia, the free encyclopedia
Jump to: navigation, search

In computing, pushd and popd are commands in various Unix shell programs, such as e.g. Bash, and also in Windows PowerShell. Both commands are used to work with the command line directory stack.

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. This directory stack is accessed by the command dirs in Unix or Get-Location -stack in Windows PowerShell.

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 Unix-like pushd and popd commands.

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.[1][2]



pushd [path | ..]


  • 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.





[/usr/ports]$ pushd /etc 
/etc /usr/ports
[/etc]$ popd

DOS or command.com CLI in Windows XP, ME, Vista, 7, 8, 8.1[edit]

C:\Users\root\pushd \\ServerName\share
C:\Users\root>pushd \

Batch File[edit]

@echo off
rem This batch file deletes all .txt files in a specified directory
pushd %1
del *.txt
echo All text files deleted in the %1 directory

See also[edit]