Я хотел бы переименовать несколько файлов, выбранных с помощью find
, в какой-то каталог, а затем использовать xargs
и mv
для переименования файлов с расширением параметра . Однако это не сработало ...
пример
mkdir test
touch abc.txt
touch def.txt
find . -type f -print0 | \
xargs -I {} -n 1 -0 mv {} "${{}/.txt/.tx}"
Результат
bad substitution
[1] 134 broken pipe find . -type f -print0
Рабочий раствор :
for i in ./*.txt ; do mv "$i" "${i/.txt/.tx}" ; done
Хотя, наконец, у меня появился способ исправить проблему, я все же хочу знать, почему первый find
+ xargs
способ не работает, так как я не думаю, что второй способ является общим для подобных задач. .
Спасибо!