Linux下批量重命名文件或文件夹(rename命令)

您所在的位置:网站首页 如何批量重命名文件夹里的文件名称 Linux下批量重命名文件或文件夹(rename命令)

Linux下批量重命名文件或文件夹(rename命令)

2024-07-10 12:44| 来源: 网络整理| 查看: 265

cp  mv 在复制、移动文件时,可单个更改文件名称

下面介绍Linux系统中另一个重命名命令 rename命令的用法。

批量创建那些规格差不多的文件名。【测试的第一步】

[root@linuxidc net]# for i in `seq -w 10` > do touch stu\_$i\_linux.jpg > done [root@linuxidc net]# sl total 0 -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_01_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_02_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_03_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_04_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_05_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_06_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_07_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_08_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_09_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_10_linux.jpg

然后,使用rename进行修改

[root@linuxidc net]# rename \_linux '' *.jpg [root@linuxidc net]# sl total 0 -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_01.jpg -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_02.jpg -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_03.jpg -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_04.jpg -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_05.jpg -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_06.jpg -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_07.jpg -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_08.jpg -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_09.jpg -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_10.jpg

注意,如果想要替换掉下划线,那么你不能加任何引号。

创建一些测试文件:

[root@linuxidc net]# for i in `seq -w 10`; do touch stu\_$i\_linux.jpg; done [root@linuxidc net]# sl total 0 -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_01_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_02_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_03_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_04_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_05_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_06_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_07_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_08_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_09_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_10_linux.jpg [root@linuxidc net]# rename '\_linux' '' *.jpg [root@linuxidc net]# sl total 0 -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_01_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_02_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_03_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_04_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_05_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_06_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_07_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_08_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_09_linux.jpg -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_10_linux.jpg

rename版本如果是perl版本的,那rename命令是支持正则的;因此在perl版本的rename下,执行上述命令就可以成功,如果rename版本是c版本的,那么上述命令是不成功的。

这个是版本支持的问题,所以不必深究。有关二个版本的比较,请参考:linux下rename命令批量重命名中的详细介绍。

之前的问题可能是因为他的rename版本不支持导致的。so,这里重点说的就是rename,虽然这个命令不是很重要。但是它其实还是很有用的,不是吗?

当然,有人会说,你这个都是在一个目录下,那我要是在不同的目录下呢? 用两个命令。一个find先把要修改的文件找出来,再接一个管道,一个rename不就完了吗? 是的,上述办法可以说是一种思路,其实有很多种思路。

附,查看rename版本的信息

[root@linuxidc net]# man rename | head -1 RENAME(1) Linux Programmer’s Manual RENAME(1)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3