El cd
comando, también conocido como chdir
( cambiar directorio ), es un comando de línea de comandos que se utiliza para cambiar el directorio de trabajo actual en varios sistemas operativos . Se puede utilizar en scripts de shell y archivos por lotes .
El comando se ha implementado en sistemas operativos como Unix , DOS , IBM OS/2 , [1] MetaComCo TRIPOS , [2] AmigaOS [3] (donde si se proporciona una ruta simple, se implica cd ), Microsoft Windows , ReactOS , [4] y Linux . En MS-DOS , está disponible en las versiones 2 y posteriores. [5] DR DOS 6.0 también incluye una implementación de los comandos cd
y . [6] El comando también está disponible en el emulador de MS-DOS de código abierto DOSBox y en el shell EFI . [7] Se nombra en HP MPE/iX . [8] El comando es análogo al comando Stratus OpenVOS . [9]chdir
chdir
change_current_dir
cd
Con frecuencia se incluye directamente integrado en un intérprete de línea de comandos. Este es el caso de la mayoría de los shells de Unix ( Bourne shell , tcsh , bash , etc.), cmd.exe
en Microsoft Windows NT / 2000 + y Windows PowerShell en Windows 7+ y COMMAND.COM
en DOS/Microsoft Windows 3.x - 9x / ME .
La llamada del sistema que efectúa el comando en la mayoría de los sistemas operativos es chdir
la definida por POSIX .
Los shells de línea de comandos en Windows suelen utilizar la API de Windows para cambiar el directorio de trabajo actual, mientras que en los sistemas Unix cd
se llama a la función chdir()
POSIX C. Esto significa que cuando se ejecuta el comando, no se crea un nuevo proceso para migrar al otro directorio como es el caso con otros comandos como ls . En cambio, el propio shell ejecuta este comando. Esto se debe a que, cuando se crea un nuevo proceso , el proceso hijo hereda el directorio en el que se creó el proceso padre . Si el cd
comando hereda el directorio del proceso padre, entonces el objetivo del comando cd nunca se logrará.
Windows PowerShell , el shell de línea de comandos orientado a objetos y lenguaje de scripting de Microsoft , ejecuta el cd
comando ( cmdlet ) dentro del proceso del shell. Sin embargo, dado que PowerShell se basa en .NET Framework y tiene una arquitectura diferente a la de los shells anteriores, todos los cmdlets de PowerShell, como ls
, rmetc., se ejecutan en el proceso del shell. Por supuesto, esto no es así para los comandos heredados que aún se ejecutan en un proceso independiente.
Un directorio es una sección lógica de un sistema de archivos que se utiliza para almacenar archivos. Los directorios también pueden contener otros directorios. El cd
comando se puede utilizar para cambiar a un subdirectorio, volver al directorio principal, volver al directorio raíz o ir a cualquier directorio determinado.
Considere la siguiente subsección de un sistema de archivos Unix, que muestra el directorio de inicio de un usuario (representado como ~
) con un archivo, text.txt
, y tres subdirectorios.
Si el directorio de trabajo actual del usuario es el directorio de inicio ( ~
), entonces ingresar el comando ls
seguido de cd games
podría producir la siguiente transcripción:
usuario@wikipedia:~$ ls workreports juegos enciclopedia texto.txt usuario@wikipedia:~$ cd juegos usuario@wikipedia:~/juegos$
El usuario ahora está en el directorio "juegos".
Una sesión similar en DOS (aunque el concepto de "directorio de inicio" puede no aplicarse, dependiendo de la versión específica [ vago ] ) se vería así:
C:\> directorioinformes de trabajo <DIR> miércoles 9 de octubre 9:01juegos <DIR> mar 8 oct 14:32Enciclopedia <DIR> Lun 1 de octubre 10:05texto txt 1903 jue 10 oct 12:43C:\> cd juegosC:\juegos>
DOS mantiene directorios de trabajo separados para cada unidad con letra y también tiene el concepto de una unidad de trabajo actual. El cd
comando se puede utilizar para cambiar el directorio de trabajo de la unidad de trabajo o de otra unidad con letra. Al escribir la letra de la unidad como un comando por sí solo se cambia la unidad de trabajo, por ejemplo C:
; alternativamente, cd
con el /d
interruptor se puede utilizar para cambiar la unidad de trabajo y el directorio de trabajo de esa unidad en un solo paso. Las versiones modernas de Windows simulan este comportamiento para compatibilidad con versiones anteriores bajo CMD.EXE . [10]
Tenga en cuenta que la ejecución cd
desde la línea de comandos sin argumentos tiene diferentes efectos en distintos sistemas operativos. Por ejemplo, si cd
se ejecuta sin argumentos en DOS, OS/2 o Windows, se muestra el directorio de trabajopwd
actual (equivalente a Unix ). Si cd
se ejecuta sin argumentos en Unix, el usuario regresa al directorio de inicio.
La ejecución del cd
comando dentro de un script o archivo por lotes también tiene diferentes efectos en diferentes sistemas operativos. En DOS, el directorio actual del llamador puede ser alterado directamente por el uso de este comando por parte del archivo por lotes . En Unix , el directorio actual del llamador no es alterado por la invocación del cd
comando por parte del script. Esto se debe a que en Unix, el script generalmente se ejecuta dentro de un subshell .
cd
por sí solo o cd ~
siempre pondrá al usuario en su directorio de inicio.cd .
dejará al usuario en el mismo directorio en el que se encuentra actualmente (es decir, el directorio actual no cambiará). Esto puede ser útil si el código interno del shell del usuario no puede lidiar con el directorio en el que se encuentra que se está recreando; la ejecución cd .
colocará su shell en el directorio recreado.cd ~username
colocará al usuario en el directorio de inicio del nombre de usuario.cd dir
(sin un /
) colocará al usuario en un subdirectorio; por ejemplo, si está en /usr
, al escribir cd bin
lo colocará en /usr/bin
, mientras que cd /bin
lo colocará en /bin
.cd ..
moverá al usuario un directorio hacia arriba. Por lo tanto, si está /usr/bin/tmp
, cd ..
lo mueve a /usr/bin
, mientras que cd ../..
lo mueve a /usr
(es decir, hacia arriba dos niveles). El usuario también puede usar esta indirección para acceder a subdirectorios. Por lo tanto, desde /usr/bin/tmp
, puede usar cd ../../local
para ir a/usr/local
cd -
hará que el usuario vuelva al directorio anterior. Por ejemplo, si está en /usr/bin/tmp
y va a /etc
, puede escribir cd -
para volver a /usr/bin/tmp
. El usuario puede usar esto para alternar entre dos directorios sin pushd y popd .-p
Imprima la pila de directorios final, al igual que dirs.-n
Las entradas se envuelven antes de llegar al borde de la pantalla.-v
Las entradas se imprimen una por línea, precedidas por sus posiciones en la pila.cd\
(Solo DOS y Windows) vuelve al directorio raíz. En consecuencia, el comando cd\subdir
siempre lleva al usuario al subdirectorio nombrado en el directorio raíz , independientemente de dónde se encuentre cuando se emite el comando.En el Protocolo de transferencia de archivos , el comando correspondiente se escribe CWD
en el flujo de control, pero está disponible como cd
en la mayoría de los programas de línea de comandos del clientelcd
. Algunos clientes también tienen la opción para cambiar el directorio de trabajo localmente .
Los entornos de computación numérica MATLAB y GNU Octave incluyen una cd
función con una funcionalidad similar. [11] [12] El comando también se aplica a los intérpretes de línea de comandos de varios otros programas de aplicación.