как переименовать все файлы в папке с определенным расширением (рекурсивный подход)

как переименовать все файлы в папке с определенным расширением (рекурсивный подход)

мы хотим переименовать все файлы в /home/DB_home (рекурсивно)

поэтому каждый файл в DB_home будет переименован с расширением .txt

пример

до изменения

/home/DB_home/hg/ir/qemu-ga
/home/DB_home/td/glusterfs
/home/DB_home/yr/ew/sd/cv/ntpstats
/home/DB_home/yr/ew/sd/cv/proc.csv
/home/DB_home/td/GF.conf
/home/DB_home/td/tool.bin

пример (после переименования)

/home/DB_home/hg/ir/qemu-ga.txt
/home/DB_home/td/glusterfs.txt
/home/DB_home/yr/ew/sd/cv/ntpstats.txt
/home/DB_home/yr/ew/sd/cv/proc.csv.txt
/home/DB_home/td/GF.conf.txt
/home/DB_home/td/tool.bin.txt
.
.
.

как это сделать с помощью find и mv?

решение1

Как это:

find . -type f -exec mv {} {}.txt \;

решение2

find . type f -exec mv {} {}.txt \;

{}... потому что нигде не сказано, что в команде можно использовать только один раз, по крайней мере, до тех пор, пока вы используете ;, а не +.

Связанный контент