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 find
con la exec
opció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 exec
línea, '{}'
se sustituirá por el nombre del archivo real y se moverá al destino. Del mismo modo, para copiar, simplemente intercambie mv
con 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 -i
opción después de mv
o cp
, respectivamente.
grep
No es necesario xargs
y sus gustos. Esto complicaría innecesariamente las cosas.