Ampliando la respuesta de Anderson M. Gomes , Bash le permite consultar cualquier directorio anterior en su pila de directorios escribiendo ~N(o ~+N) dónde Nestá la posición en la pila de directorios. Por ejemplo:
# go some places
$ cd /path/to/source/directory
$ pushd /path/to/destination/directory
$ pushd $HOME
$ pushd /tmp
# show the current dir stack
$ dirs -v
0 /tmp
1 ~
2 /path/to/destination/directory
3 /path/to/source/directory
Ahora puede copiar un archivo entre dos directorios anteriores, ninguno de ellos el actual, con:
cp -v ~3/file1.txt ~2
Para resolver el problema del póster original, haría lo siguiente:
$ cd /path/to/source/directory
$ pushd /path/to/destination/directory
# show the current dir stack
$ dirs -v
0 /path/to/destination/directory
1 /path/to/source/directory
# copy
cp -v ~1/file[123].txt .
Con un gran conjunto de archivos, puede enumerar sus nombres en un archivo de manifiesto y luego hacer la copia desde el directorio de origen:
$ cd /path/to/destination/directory
$ pushd /path/to/source/directory
# copy
cp -v $(cat files_to_copy.list) ~1
Consulte también: esta sección de la página de manual de Bash
De manera similar, en Tcsh, puede usar la =2notación (en lugar de ~2) para referirse al segundo directorio en su pila de directorios.
Consulte también: esta sección de la página de manual de Tcsh
cdcomando, de modo que puedacd -volver al directorio anterior, presionar la flecha hacia arriba para recuperar elcdcomando y editar la línea encplugar decd. (ctrl-a (principio de línea), alt-d (palabracp -aclave ) , ctrl-e (final de línea)).