7 votos

Terminal: ¿Cómo mover archivos al último directorio utilizado cómodamente?

He buscado en Google en vano y no he encontrado ningún ejemplo.

Por ejemplo, si quiero mover archivos a la dir actual puedo usar . Pero ¿y si estoy en ~/foo y cd en ~/foo/bar/xyz/dir y quieren mudarse, digamos, file.txt a ~/foo ?

Yo pensaría que mv file.txt - sería posible. Por supuesto entiendo que una cosa es traer archivos de otro directorio en . y otra es moverlo de donde estoy a donde Yo era .

¿Cómo puedo conseguirlo?

12voto

Brian Trzupek Puntos 66

"~-" se refiere al directorio anterior. De la página de manual de bash:

Si el prefijo tilde- es `~-', se sustituye por el valor de la variable de shell OLDPWD, si está activada.

$ pwd
/home/me
$ cd /usr
$ pwd
/usr
$ cd
$ pwd
/home/me
$ echo ~-
/usr

Así que

mv file.txt ~-

hará lo que tú quieras. Parece que también funciona en zsh.

11voto

En man bash :

OLDPWD The previous working directory as set by the cd command.

Así que.., cp file.txt $OLDPWD debería ayudar aquí (o cp file.txt "$OLDPWD" si no está seguro de si la ruta anterior contiene caracteres de espacio en blanco).

Si lo utilizas a menudo, una función del shell puede facilitar su uso:

cpprev() {
    cp "$@" "${OLDPWD:?No old directory}/"
}

4voto

mmigdol Puntos 715

Hay un truco que puedes probar, utilizando la función cd y el hecho de que cd - cambios a donde estuviste la última vez:

$ pwd
/home/me
$ cd somesubdir
$ pwd
/home/me/somesubdir
$ cd -
/home/me
$ cd -
/home/me/somesubdir
$ cd -
/home/me
$ pwd
/home/me
$ echo $(cd -)
/home/me/somesubdir
$ pwd
/home/me

Por lo tanto, puede hacer algo como

$ mv file.* $(cd -)/

para mover archivos desde donde estás ahora a donde estabas antes; esto ciertamente funciona en bash.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X