Tengo millones de archivos con la siguiente nomenclatura en una máquina Linux:
1559704165_a1ac6f55fef555ee.jpg
Los primeros 10 dígitos son marcas de tiempo y los seguidos por un _
son identificadores específicos. Quiero mover todos los archivos que coincidan con identificadores de nombre de archivo específicos a una carpeta diferente.
Intenté esto en el directorio con archivos
find . -maxdepth 1 -type f | ??????????_a1ac*.jpg |xargs mv -t "/home/ubuntu/ntest"
Sin embargo, recibo un error que indica:
bash 1559704165_a1ac6f55fef555ee.jpg: command not found
Cuando lo intenté, mv ??????????_a1ac*.jpg
recibo una lista de argumentos de error demasiado largo. Tengo al menos 15 patrones de nombre de archivo diferentes. ¿Cómo los muevo?
| ??????????_a1ac*.jpg
:: bash lo expande a varios nombres de archivo, el primero es1559704165_a1ac6f55fef555ee.jpg
, si termina , en esa segunda etapa de canalización, intentando ejecutar:.1559704165_a1ac6f55fef555ee.jpg next_matching_filename 3rd_matching_filename ... nth_matching_filename
Supongo que intentaste filtrar ese nombre de archivo (ver las respuestas a continuación para eso)