1 votos

¿Cómo mover archivos en varios directorios en el mismo directorio?

tengo muchos archivos en directorios diferentes 300, árbol de archivos como:

... etcetera.

Quiero ponerlos juntos bajo el mismo directorio como:

¿Hay cualquier script de bash útil en la práctica?

Codifiqué este pedazo de script bash:

pero tengo el error que no entiendo:

1voto

Spas Spasov Puntos 305

Tal vez la forma más sencilla de hacer este trabajo es con el comando find (por defecto funciona de forma recursiva):

find ~/wav/train/S* -type f -name "*.wav" -exec echo mv {} ~/wav/train/wavs/ \;
  • ~/wav/train/S* es la ruta de búsqueda y hará coincidir para cada sub dir que comienza con S.

  • -type f limitará la búsqueda sólo a los archivos.

  • -name "*.wav" limitará la búsqueda sólo a los archivos que termina con .wav. No es obligatoria.

  • -exec ... \; ejecutará el mencionado comando una vez para cada búsqueda coincidencia.

  • {} es una variable que contiene el elemento de coincidencia.

  • retire echo desde el comando echo mv {} ~/wav/train/wavs/ para realizar la acción.

Si desea eliminar los directorios que usted puede utilizar un comando como uno de estos:

find ~/wav/train/S* -type d -name "S*" -exec echo rm -r {} \;
find ~/wav/train/S* -type d -name "S*" -delete

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: