Это делает то, что мне нужно сделать
find ./ -name "cleanup.log-*" | xargs -I '{}' sh -c 'mv "$1" $(echo {} | cut -d"-" -f-2)' - {}
Сложно было преобразовать строку замены xargs -I {}
в аргументы команды xargs sh -c ...
.
Я сделал это, поместив аргумент no option -
в конец команды перед строкой замены {}
.
Таким образом, моя команда xargs следующая.
sh -c 'mv "$1" $(echo {} | cut -d"-" -f-2)' - {}
Я использовал это, чтобы проверить, что я хотел до запуска команды перемещения
find ./ -name "upload.log-*" | xargs -I '{}' sh -c 'echo "$1" $(echo {} | cut -d"-" -f-2)' - {}
Я нашел этот сайт полезным в понимании, как решить эту проблему