Невозможно рекурсивно переименовать файлы с помощью команды xargs - PullRequest
0 голосов
/ 24 января 2019

Я должен рекурсивно переименовать все файлы, которые соответствуют шаблону. Я использую приведенную ниже команду.

find . -type f -iname 'dev*' | xargs -I{} mv $1 echo '/dev-profile/prod-profile'

Когда я запускаю вышеупомянутую команду, я получаю ошибку ниже missing destination file operand after /dev-profile/prod-profile

Мне нужно рекурсивно заменить все файлы. Где я иду не так.

1 Ответ

0 голосов
/ 29 января 2019

Работа с аргументами в xargs часто приводит к путанице с bash -c ... _.

Если у вас есть GNU Parallel, вы избегаете этого беспорядка и, вероятно, можете сделать что-то вроде этого:

find . -type f -iname 'dev*' | parallel mv {} /dev-profile/prod-profile
...