1

У меня есть около 70000 файлов (в основном дубликаты), большинство из которых соответствуют шаблону имени, например name (1) .ext, name (2) .ext .... name (10) .ext. Однако среди этих файлов есть и другие с именем name (xwz) .ext.

Теперь я хочу найти все файлы первого типа и переместить их в папку назначения; Я посмотрел на несколько ответов на суперпользователя и мне удается сделать следующее:

Сначала я использовал команду find, чтобы найти файлы следующим образом:

find ~/sourcedir -name "*([0-9]).*" -o -name "*([0-9][0-9]).*"

который извлекает все файлы, которые я хочу (я напечатал их в файле и получил более 73 000 файлов); затем я попытался передать их команде Move следующим образом:

find ~/sourcedir -name "*([0-9]).*" -o -name "*([0-9][0-9]).*" -type f -exec mv {} ~/destinationdir \;

однако при этом только один файл перемещается в пункт назначения (последний в списке) или ни одного; что здесь не так? почему я не могу переместить все файлы в директорию назначения?

тем не менее, если я использую только одну опцию в команде find, скажите

find ~/sourcedir -name "*([0-9]).*" 

а затем выполните команду -execmv, но не используйте обе опции;

действительно, похоже, что он обрабатывает только второй вариант (так как единственный перемещенный файл - это файл, который соответствует второму варианту); как передать все файлы, соответствующие первой или второй опции, для «перемещения»?

0