У мене є мільйони файлів із такою номенклатурою на машині 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
Я думаю, ви намагалися замість цього відфільтрувати це ім'я файлу (див. відповіді нижче для цього)