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

1

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

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

qodeninja
fuente

Respuestas:

4

Ú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á seguro de que estos son los archivos que desea mover, ejecute lo siguiente:

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

En la execlínea, '{}'se sustituirá con el nombre real del archivo y se moverá al destino. Del mismo modo, para copiar, solo intercambie mvcon 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 -iopción después mvo cp, respectivamente.

No hay necesidad de grep, xargsy sus gustos. Esto complicaría innecesariamente las cosas.

slhck
fuente