Я хочу переименовать все .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
сообщение?
Необходимо использовать find
-exec
, синтаксис правильно, с помощью '{}'
для представления найденных файлов
find ./ -type d -name '*.txt' -execdir rename -n 's/\.txt//g' '{}' \;
Удаляет -n
после rename
, после того как Вы протестировали его.
(принятие Вас действительно хотело изменить имена каталогов и не регулярные имена файлов - если это имело место, используйте -type f
вместо type -d
)