¿Cómo se pueden mover (o copiar) todos los archivos de un determinado tipo a un directorio en Unix?

¿Cómo se pueden mover (o copiar) todos los archivos de un determinado tipo a un directorio en Unix?

Todavía no estoy muy familiarizado con todos los trucos de grep/find/awk/xargs, así que ten paciencia conmigo =]

Tengo un tipo de archivo particular, digamos *.xxx, en lugares aleatorios en un directorio determinado. ¿Cómo puedo encontrar todos esos archivos y moverlos a una carpeta en mi directorio personal en Unix (que puede que aún no exista)?

Respuesta1

Úselo findcon la execopción, pero primero cree la carpeta de destino.

mkdir -p /home/somewhere/else
find /somewhere -iname "*.xxx"

Esto enumerará todo lo que se movería. Ahora, si estás seguro de que estos son los archivos que deseas mover, ejecuta lo siguiente:

find /somewhere -iname "*.xxx" -exec mv '{}' /home/somewhere/else/ \;

En la execlínea, '{}'se sustituirá por el nombre del archivo real y se moverá al destino. Del mismo modo, para copiar, simplemente intercambie mvcon cp. Es \;necesario para finalizar el comando.

Si desea una confirmación antes de cada operación de archivo que sobrescribiría un archivo ya existente, puede agregar la -iopción después de mvo cp, respectivamente.

grepNo es necesario xargsy sus gustos. Esto complicaría innecesariamente las cosas.

información relacionada