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 N
está 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 =2
notació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
cd
comando, de modo que puedacd -
volver al directorio anterior, presionar la flecha hacia arriba para recuperar elcd
comando y editar la línea encp
lugar decd
. (ctrl-a (principio de línea), alt-d (palabracp -a
clave ) , ctrl-e (final de línea)).