¿Cómo copiar varios archivos de un directorio diferente usando cp?


Quiero copiar varios archivos de un directorio específico una vez que estoy en otro directorio. Para aclarar quiero hacer lo siguiente, a la vez (un comando):

cp ../dir5/dir4/dir3/dir2/file1 .
cp ../dir5/dir4/dir3/dir2/file2 .
cp ../dir5/dir4/dir3/dir2/file3 .
cp ../dir5/dir4/dir3/dir2/file4 .

Que no puedo usar cp ../dir5/dir4/dir3/dir2/* . porque dir2 hay n archivos (n>4)

Por cierto, estoy usando bash.

Gracias.

Author: torrential coding, 2012-03-29

3 answers

cp ../dir5/dir4/dir3/dir2/file[1234] .

O (en Bash)

cp ../dir5/dir4/dir3/dir2/file{1..4} .

Si los nombres de archivo no son contiguos, puede usar

cp ../dir5/dir4/dir3/dir2/{march,april,may} .
 76
Author: Philipp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-28 21:40:05

Si todos los archivos que desea copiar en el patrón de file{number}{othertext}, podría usar algo como:

cp ../dir5/dir4/dir3/dir2/file[0-9]* .

Tenga en cuenta que esto copiará file5, pero también copiará file0abc.

Si desea copiar SOLO esos cuatro archivos (y no los {othertext}), puede usar:

cp ../dir5/dir4/dir3/dir2/file[1-4] .

Tenga en cuenta que mientras que este parece como parte de una expresión regular, no lo es.

 5
Author: ghoti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-28 21:24:06

Prueba este:

 cp ../dir5/dir4/dir3/dir2/file{1..4}
 3
Author: zbyszek26104,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-28 21:23:28