Linux 系统下批量修改文件名
来源:靑龍一笑的博客 作者:靑龍一笑 发布时间:2021-02-20 11:13:39 点击量:563 评论:0
假设有这么一个需求,要将所有 .JPG 修改为 .jpg。
root@RicenOS:~# touch {0,2,4,6,8}.JPG {1,5,9}.png {3,7}.gif
root@RicenOS:~# ls
0.JPG 1.png 2.JPG 3.gif 4.JPG 5.png 6.JPG 7.gif 8.JPG 9.png
root@RicenOS:~# ls
0.JPG 1.png 2.JPG 3.gif 4.JPG 5.png 6.JPG 7.gif 8.JPG 9.png
首先,要找出所有的 .JPG 文件:
root@RicenOS:~# for i in *.JPG; do echo $i; done
0.JPG
2.JPG
4.JPG
6.JPG
8.JPG
0.JPG
2.JPG
4.JPG
6.JPG
8.JPG
修改文件名使用 mv 命令:
mv -f 原文件名 新文件名
由于是批量修改,通常使用 -f 参数来强制修改,表示如果有同名文件则覆盖。如果不希望被覆盖,则不要添加 -f 参数,而要使用 -i 参数。
接着,需要构造新文件名:
root@RicenOS:~# for i in *.JPG; do echo $i | sed 's/JPG/jpg/'; done
0.jpg
2.jpg
4.jpg
6.jpg
8.jpg
0.jpg
2.jpg
4.jpg
6.jpg
8.jpg
综合以上命令,将所有 .JPG 修改为 .jpg 命令如下:
root@RicenOS:~# for i in *.JPG; do mv -f $i `echo $i | sed 's/JPG/jpg/'`; done
root@RicenOS:~# ls
0.jpg 1.png 2.jpg 3.gif 4.jpg 5.png 6.jpg 7.gif 8.jpg 9.png
root@RicenOS:~# ls
0.jpg 1.png 2.jpg 3.gif 4.jpg 5.png 6.jpg 7.gif 8.jpg 9.png
版权所有 © 2005-2023 靑龍一笑的博客 Powered by C.S.Ricen
Copyright © 2005-2023 by www.ricensoftwares.com.cn All Rights Reserved.
Copyright © 2005-2023 by www.ricensoftwares.com.cn All Rights Reserved.