En informática, pushd
y popd
son un par de comandos que permiten a los usuarios cambiar rápidamente entre el directorio actual y el anterior cuando utilizan la línea de comandos. Cuando se les llama, utilizan una pila de directorios para guardar y recuperar secuencialmente los directorios visitados por el usuario. [1] [2]
Están ampliamente disponibles como comandos integrados en muchos intérpretes de línea de comandos , como 4DOS , Bash , [3] C shell , tcsh , Hamilton C shell , KornShell , cmd.exe y PowerShell , y para varios sistemas operativos, incluidos Windows y Unix. -Sistemas similares .
La pila de directorios subyace a las funciones de estos dos comandos. Es una matriz de rutas almacenadas como una variable de entorno en la CLI, que se puede ver usando el comando dirs
en Unix o Get-Location -stack
en PowerShell. El directorio de trabajo actual siempre está en la parte superior de la pila.
El pushd
comando ('push directorio') guarda el directorio de trabajo actual en la pila y luego cambia el directorio de trabajo a la nueva ruta ingresada por el usuario. Si pushd
no se proporciona un argumento de ruta , cambia al siguiente directorio desde la parte superior de la pila, [ se necesita aclaración ] que se puede usar para alternar entre dos directorios.
El popd
comando elimina (o "aparece", en la analogía de la pila) la entrada de la ruta actual de la pila y regresa a la ruta en la parte superior de la pila como el nuevo directorio de trabajo. [4] [5]
El primer shell de Unix que implementó una pila de directorios fue el shell C de Bill Joy . [ cita necesaria ] La sintaxis para insertar y extraer directorios es esencialmente la misma que la que se usa ahora. [6] [7]
Ambos comandos están disponibles en FreeCOM, la interfaz de línea de comandos de FreeDOS . [8]
En Windows PowerShell , pushd es un alias de comando predefinido para el Push-Location
cmdlet y popd es un alias de comando predefinido para el Pop-Location
cmdlet. Ambos sirven básicamente para el mismo propósito que los comandos pushd
y popd
.
[usuario@servidor /usr/puertos] $ pushd /etc /etc /usr/puertos [usuario@servidor /etc] $ popd /usr/puertos [usuario@servidor /usr/puertos] $
C:\Users\root> pushd C:\Users C:\Users> popd C:\Users\root>
@ echo off rem Este archivo por lotes elimina todos los archivos .txt en un directorio especificado pushd %1 del *.txt popd echo Todos los archivos de texto eliminados en el directorio %1
pushd [ruta | ..]
Argumentos:
path
Este argumento opcional de línea de comandos especifica el directorio para convertirlo en el directorio actual. Si path
se omite, se utiliza la ruta en la parte superior de la pila de directorios, lo que tiene el efecto de alternar entre dos directorios.popd