Я использую следующую команду для перемещения всех файлов (нерекурсивно), заканчивающихся на _128.jpg в 128x160 subdir. Это прекрасно работает.
find . -iname '*_128.jpg' | xargs -I '{}' mv {} 128x160
Но мне также нужно удалить _128 суффикс из каждого файла. Кроме того, я должен сохранить свой текущий xargs метод, делая exec поскольку каждый из них сделает процесс намного дольше.
Заранее благодарим за сотрудничество!
Что-то вроде этого должно помочь:
find . -iname '*_128.jpg' | xargs -I % sh -c 'newname=$(echo % | sed "s/_128//"); mv % 128x160/$newname'
Здесь я использовал подход с несколькими командами, используя sh -c 'command1; command2'
и sed
очистить _128
в имени файла.