Переименуйте все .txt файлы в подпапках с “находкой”

Я хочу переименовать все .txt файлы в папке. Это переименовывает, действительно переименовывают все .txt для меня:

rename 's/\.txt//g' *.txt -v

но когда я хочу переименовать все sub папки с

find ./ -type d -execdir rename 's/\.txt//g' *.txt -v ";"

Это показывает мне:

Can't rename *.txt *: No such file or directory
Can't rename *.txt *: No such file or directory
...

Также find ./ -type -d показывает мне текущий и все sub папки правильно.

Почему я имею No such file or directory сообщение?

3
задан 4 January 2017 в 19:10

1 ответ

Необходимо использовать find -exec, синтаксис правильно, с помощью '{}' для представления найденных файлов

find ./ -type d -name '*.txt' -execdir rename -n 's/\.txt//g' '{}' \;

Удаляет -n после rename, после того как Вы протестировали его.

(принятие Вас действительно хотело изменить имена каталогов и не регулярные имена файлов - если это имело место, используйте -type f вместо type -d)

6
ответ дан 1 December 2019 в 15:22

Другие вопросы по тегам:

Похожие вопросы: