Eu tenho milhões de arquivos com a seguinte nomenclatura em uma máquina Linux:
1559704165_a1ac6f55fef555ee.jpg
Os 10 primeiros dígitos são de data e hora e os seguidos de a _
são IDs específicos. Quero mover todos os arquivos correspondentes a IDs específicos de nome de arquivo para uma pasta diferente.
Eu tentei isso no diretório com arquivos
find . -maxdepth 1 -type f | ??????????_a1ac*.jpg |xargs mv -t "/home/ubuntu/ntest"
No entanto, estou recebendo um erro indicando:
bash 1559704165_a1ac6f55fef555ee.jpg: command not found
Quando tentei, mv ??????????_a1ac*.jpg
estou recebendo um erro muito longo da lista de argumentos. Eu tenho pelo menos 15 padrões de nome de arquivo diferentes. Como eu os movo.
| ??????????_a1ac*.jpg
:: bash o expande para vários nomes de arquivo, o primeiro é1559704165_a1ac6f55fef555ee.jpg
, e você acaba , em que fase 2a tubo, tentando executar:1559704165_a1ac6f55fef555ee.jpg next_matching_filename 3rd_matching_filename ... nth_matching_filename
Eu acho que você tentou em vez disso. filtro para que filename (ver respostas abaixo para isso)