У меня есть миллионы файлов со следующей номенклатурой на компьютере с Linux:
1559704165_a1ac6f55fef555ee.jpg
Первые 10 цифр являются метками времени, а те, за которыми _
следует символ a, являются конкретными идентификаторами. Я хочу переместить все файлы, соответствующие конкретным идентификаторам имен файлов, в другую папку.
Я попробовал это в каталоге с файлами
find . -maxdepth 1 -type f | ??????????_a1ac*.jpg |xargs mv -t "/home/ubuntu/ntest"
Однако я получаю сообщение об ошибке:
bash 1559704165_a1ac6f55fef555ee.jpg: command not found
Когда я пытался, mv ??????????_a1ac*.jpg
я получаю список аргументов слишком длинная ошибка. У меня есть как минимум 15 различных шаблонов имен файлов. Как мне их переместить.
| ??????????_a1ac*.jpg
bash расширяет его до нескольких имен файлов, первое из которых1559704165_a1ac6f55fef555ee.jpg
- если вы в конечном итоге , на втором этапе конвейера, пытаясь выполнить:1559704165_a1ac6f55fef555ee.jpg next_matching_filename 3rd_matching_filename ... nth_matching_filename
Я полагаю, вы пытались вместо этого фильтровать по этому имени файла (см. ответы ниже)