Mam miliony plików z następującą nomenklaturą na komputerze z systemem Linux:
1559704165_a1ac6f55fef555ee.jpg
Pierwsze 10 cyfr to znacznik czasu, a następujące po nich _
to konkretne identyfikatory. Chcę przenieść wszystkie pliki pasujące do określonych identyfikatorów plików do innego folderu.
Próbowałem tego w katalogu z plikami
find . -maxdepth 1 -type f | ??????????_a1ac*.jpg |xargs mv -t "/home/ubuntu/ntest"
Jednak pojawia się błąd wskazujący:
bash 1559704165_a1ac6f55fef555ee.jpg: command not found
Kiedy próbowałem, mv ??????????_a1ac*.jpg
pojawia się zbyt długi błąd listy argumentów. Mam co najmniej 15 różnych wzorów nazw plików. Jak je przenieść?
| ??????????_a1ac*.jpg
: bash rozwija ją do kilku nazw plików, pierwszą rzeczą jest to1559704165_a1ac6f55fef555ee.jpg
, że skończysz , w tym drugim etapie potoku, próbując wykonać:1559704165_a1ac6f55fef555ee.jpg next_matching_filename 3rd_matching_filename ... nth_matching_filename
Myślę, że zamiast tego próbowałeś przefiltrować do tej nazwy pliku (zobacz odpowiedzi poniżej)