![如何重命名具有特定扩展名的文件夹下的所有文件(递归方法)](https://linux22.com/image/1567642/%E5%A6%82%E4%BD%95%E9%87%8D%E5%91%BD%E5%90%8D%E5%85%B7%E6%9C%89%E7%89%B9%E5%AE%9A%E6%89%A9%E5%B1%95%E5%90%8D%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%8B%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%EF%BC%88%E9%80%92%E5%BD%92%E6%96%B9%E6%B3%95%EF%BC%89.png)
我们要重命名 /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 \;
...因为没有任何内容说您只能{}
在命令中使用一次,至少只要您使用;
而不是+
。