Ú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á seguro de que estos son los archivos que desea mover, ejecute lo siguiente:
find /somewhere -iname "*.xxx" -exec mv '{}' /home/somewhere/else/ \;
En la exec
línea, '{}'
se sustituirá con el nombre real del archivo y se moverá al destino. Del mismo modo, para copiar, solo intercambie mv
con cp
. El \;
es necesario para terminar el comando.
Si desea una confirmación antes de cada operación de archivo que sobrescribirá un archivo ya existente, puede agregar la -i
opción después mv
o cp
, respectivamente.
No hay necesidad de grep
, xargs
y sus gustos. Esto complicaría innecesariamente las cosas.