linux如何批量重命名多个文件
时间:2019-04-29 03:18:25 来源:igfitidea点击:
如何批量将dir1, dir2, dir3重命名为dir001, dir002, dir003。
要重命名多个文件夹,可以使用来自MariaDB/MySQL或Linux实用程序包的rename命令。
或者使用bash的for循环。
或者使用mmv命令
Linux使用rename命令重命名多个文件夹
语法
rename expression replacement file
示例
[root@lautturicentos8 tmp]# touch file{1..4}.tar.gz
[root@lautturicentos8 tmp]# ll
total 0
-rw-r--r--. 1 root root 0 Apr 22 05:03 file1.tar.gz
-rw-r--r--. 1 root root 0 Apr 22 05:03 file2.tar.gz
-rw-r--r--. 1 root root 0 Apr 22 05:03 file3.tar.gz
-rw-r--r--. 1 root root 0 Apr 22 05:03 file4.tar.gz
[root@lautturicentos8 tmp]# rename -v .tar.gz .tar *.tar.gz
'file1.tar.gz' -> 'file1.tar'
'file2.tar.gz' -> 'file2.tar'
'file3.tar.gz' -> 'file3.tar'
'file4.tar.gz' -> 'file4.tar'
[root@lautturicentos8 tmp]# ll
total 0
-rw-r--r--. 1 root root 0 Apr 22 05:03 file1.tar
-rw-r--r--. 1 root root 0 Apr 22 05:03 file2.tar
-rw-r--r--. 1 root root 0 Apr 22 05:03 file3.tar
-rw-r--r--. 1 root root 0 Apr 22 05:03 file4.tar
重命名目录
[root@lautturicentos8 tmp]# mkdir dir{1..5}
[root@lautturicentos8 tmp]# ll
total 0
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir1
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir2
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir3
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir4
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir5
[root@lautturicentos8 tmp]# rename -v dir dir00 dir?
'dir1' -> 'dir001'
'dir2' -> 'dir002'
'dir3' -> 'dir003'
'dir4' -> 'dir004'
'dir5' -> 'dir005'
[root@lautturicentos8 tmp]# ll
total 0
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir001
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir002
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir003
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir004
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir005
使用bash for循环重命名多个文件夹
去掉目录名中的空格
for i in *
do
mv -v "$i" "${i// /}"
done
将目录名中的00去掉:
for i in *
do
mv -v "$i" "${i//00/}"
done
[root@lautturicentos8 tmp]# ll
total 0
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir001
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir002
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir003
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir004
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir005
[root@lautturicentos8 tmp]#
[root@lautturicentos8 tmp]# for i in *
> do
> mv -v "$i" "${i//00/}"
> done
renamed 'dir001' -> 'dir1'
renamed 'dir002' -> 'dir2'
renamed 'dir003' -> 'dir3'
renamed 'dir004' -> 'dir4'
renamed 'dir005' -> 'dir5'
[root@lautturicentos8 tmp]#
[root@lautturicentos8 tmp]# ll
total 0
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir1
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir2
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir3
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir4
drwxr-xr-x. 2 root root 6 Apr 22 05:05 dir5
将.tar扩展名改成.zip
for i in *.tar
do
mv -v -- "$i" "${i%.tar}.zip"
done
[root@lautturicentos8 tmp]# ll
total 0
-rw-r--r--. 1 root root 0 Apr 22 05:12 file1.tar
-rw-r--r--. 1 root root 0 Apr 22 05:12 file2.tar
-rw-r--r--. 1 root root 0 Apr 22 05:12 file3.tar
-rw-r--r--. 1 root root 0 Apr 22 05:12 file4.tar
-rw-r--r--. 1 root root 0 Apr 22 05:12 file5.tar
[root@lautturicentos8 tmp]# for i in *.tar
> do
> mv -v -- "$i" "${i%.tar}.zip"
> done
renamed 'file1.tar' -> 'file1.zip'
renamed 'file2.tar' -> 'file2.zip'
renamed 'file3.tar' -> 'file3.zip'
renamed 'file4.tar' -> 'file4.zip'
renamed 'file5.tar' -> 'file5.zip'
[root@lautturicentos8 tmp]# ll
total 0
-rw-r--r--. 1 root root 0 Apr 22 05:12 file1.zip
-rw-r--r--. 1 root root 0 Apr 22 05:12 file2.zip
-rw-r--r--. 1 root root 0 Apr 22 05:12 file3.zip
-rw-r--r--. 1 root root 0 Apr 22 05:12 file4.zip
-rw-r--r--. 1 root root 0 Apr 22 05:12 file5.zip
[root@lautturicentos8 tmp]#
在Linux中使用mmv重命名多个文件
安装mmv命令
### CentOS/RHEL sudo yum install mmv ### Ubuntu/Debian sudo apt install mmv ### Fedora sudo dnf install mmv
mmv语法
mmv from to mmv [options] from to
mmv示例
### 所有文件名大写 mmv "dir*" "#u1" ### 所有文件名小写 mmv "dir*" "#l1" ### 将.PY扩展名的文件改成.Pl mmv '*.PY' '#1.pl'

