2009-12-09 8 views
9

en general que se utilizacambiar al directorio superior en UNIX

cd .. para ir al directorio padre

cd ../../ para ir al directorio de los padres de los padres. y

cd ../../../../../ para el 5to directorio principal.

¿hay alguna forma simplificada de hacerlo?

shell que estoy usando es ksh.

+0

Puede dejar la barra al final. Además, la respuesta a su pregunta puede depender de qué shell. –

+0

Algunos accesos directos: 'cd -' te lleva de vuelta a donde vienes. 'cd ~' lo lleva a su directorio de inicio. – Asaph

+0

Puede verificar el nuevo comando '' bd' ': vea [mi respuesta a continuación] (http://stackoverflow.com/a/18694331/6309) – VonC

Respuesta

6

Esta función es para Bash, pero algo similar se podría hacer por los demás (esto puede funcionar como está en ksh y zsh): el uso

cdn() { pushd .; for ((i=1; i<=$1; i++)); do cd ..; done; pwd; } 

Ejemplo:

/some/dirs/and/subdirs$ cdn 3 
/some/dirs/and/subdirs /some/dirs/and/subdirs 
/some 
/some$ popd 
/some/dirs/and/subdirs$ 
+0

lo acepto porque parece que no tenemos una línea de comando directa corta corte para esto. Sin embargo, espero que haya alguna manera de hacerlo en breve en la línea de comandos. – Vijay

0

Si no te gusta escribir o recordar nombres de archivos, puedes navegar por directorios con algo como NerdTree?

0

Puede definir alias para simplificar este tipo de operación cd.

Nota que sería fácil cometer errores con un alias en términos de ../../../.. etc, ya que tendría que ser muy seguro de la relación entre su directorio actual y en la que quería ser.

mejor usar rutas absolutas con alias

0

y pensé que era perezoso ...

Hace mucho tiempo, me cansé de escribir cd .. es así, ya que aproximadamente 1988 uno de mis alias estándar (y por lotes archivos para MSDOS/Windows) es up. Tal vez debería ampliar el concepto:

alias up='cd ..' 
alias up2='cd ../..' 
alias up3='cd ../../..' 
alias up4='cd ../../../..' 
alias up5='cd ../../../../..' 
alias up6='cd ../../../../../..' 
0

uso cd / para ir a la raíz del sistema de archivos que, y cd ~ para ir a su casa directorio.
Ejemplo: para ir a su administrador de registro simplemente haga cd /var/log.

0

Para Bourne conchas de tipo (incluyendo ksh), se podría escribir una función de shell:

cdup() { 
    set -- "${1-1}" 
    while test "$1" -gt 0; do 
     cd .. 
     set -- "$(($1-1))" 
    done 
} 
2

Tienes que ser c areful si configura cualquier alias como este. No siempre subirás 5 directorios cuando cd ../../../../... Si está a solo 2 o 3 directorios de/terminará en /. Prueba esto por ti mismo.

$ cd ~ 
$ pwd 
/home/you 
$ cd ../../../.. 
$ pwd 
/

Esto ocurre porque el directorio principal de/es en realidad /.

+1

esto no puede considerarse como una respuesta sino que debe ser un comentario. – Vijay

+1

¿Cómo sugeriría un "comentario" precautorio como este? Parecía que merecía espacio vertical para mayor claridad. A veces, la verdadera respuesta a una pregunta es descubrir que es posible que no quieras hacer las cosas de la manera en que primero pensaste que querías hacer las cosas. Espero que sepa que su 'cdn 5' podría ser solo un 'cdn 1' podría ahorrarle más que unos pocos puntos. – istruble

0

Por lo general, así lo hago. Por supuesto, en ksh puede tener sus teclas de navegación configuradas en otra cosa. Cuando usé ksh, los utilicé para que tengan el estilo vi, por lo que sería k en lugar de la flecha hacia arriba.

En scripts de shell es mejor ser explícito. Si puede utilizar una ruta absoluta y luego hacerlo y ejecutar un comando como:

cd /webdata/cgi-bin 

Si el script se puede ejecutar para actuar sobre los archivos en directorios diferentes, entonces usted podría considerar algo como esto:

TOPDIR="/webdata" 
cd $TOPDIR/cgi-bin 

Pero si realmente no se puede hacer ninguna de las dos .. luego se adhieren a las cadenas de este modo:

chmod +x *.py 
cd ../../../cgi-bin 

Esto es bastante clara. Realice una acción en el directorio de trabajo actual, luego navegue hacia arriba 3 niveles y seleccione el directorio cgi-bin. Cualquiera que sea capaz de entender lo que estás haciendo en el guión del intérprete de comandos no debería tener dificultad en seguir esto. Si el guión es realmente compleja, entonces sería ayudar a añadir algunos comentarios como éste:

# change to TOPDIR/cartsys/production/code/python 
cd python  
chmod +x *.py 
cd ../../../cgi-bin 

La implicación es que estabas en el directorio de código y cambiado abajo un nivel a pitón, por lo tanto, el lector que se olvidó donde Estaban en la jerarquía de directorios y vieron un recordatorio para ayudarlos a contar 3 niveles.

cd .. 

<up arrow><ENTER> 
<up arrow><ENTER> 
<up arrow><ENTER> 
<up arrow><ENTER> 
0

Se puede extraer de la recent project bd

Si usted está en este camino

/home/user/project/src/org/main/site/utils/file/reader/whatever 

y quiere ir a site directorio rápidamente (en lugar de escribir cd ../../../..),
, simplemente escriba:

bd site 
Cuestiones relacionadas