如何使用命令修改文件名呢?在 Linux 下可以用 rename
命令,当然还可以使用 mv
命令,今天就在这里为大家分享一下 Linux 系统中重命名文件的操作方法。
其中作者在这里是更喜欢使用 mv
命令来修改文件名的,当前 rename
也可以达到同样的效果,那么这里就为大家分别把两个命令都介绍一下。
1. mv
在这里,大家可以将 mv
理解成英文单词 move ,这样会更好记更好理解一点。在命令行 man
一下 mv
,可以看到对 mv
的介绍 move (rename) files,很简洁明了就是移动或者重命名文件的意思。
语法格式说明:
mv [option] [source] [dest]mv [选项] [源文件] [目标文件]
说明:mv
命令以及后面的选项和文件,每个元素之间都至少要有一个空格。
选项说明:(mv
命令的参数选项及说明)
参数选项 [option] | 解释说明 |
---|---|
-f | 若目标文件已经存在,则不会询问而是直接覆盖 |
-i | 若目标文件已经存在,则会询问是否覆盖 |
-n | 不覆盖已经存在的文件 |
-t | 指定 mv 的目标目录,适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后,和 cp 命令的 -t 选项功能一致 |
-u | 在源文件比目标文件新,或目标文件不存在时才进行移动 |
使用示例:(给文件改名)
[root@VM-16-64-centos src]$ ll
total 0
-rw-r--r-- 1 root root 0 Nov 11 19:54 1.txt
-rw-r--r-- 1 root root 0 Nov 11 19:54 2.txt
-rw-r--r-- 1 root root 0 Nov 11 19:54 3.txt
[root@VM-16-64-centos src]$ mv /src/1.txt /src/test.txt
==> 若 test.txt 不存在,则将 1.txt 覆盖为 test.txt。
[root@VM-16-64-centos src]$ ll
total 0
-rw-r--r-- 1 root root 0 Nov 11 19:54 2.txt
-rw-r--r-- 1 root root 0 Nov 11 19:54 3.txt
-rw-r--r-- 1 root root 0 Nov 11 19:54 test.txt
[root@VM-16-64-centos src]$ mv /src/2.txt /src/test.txt
mv: overwrite '/src/test.txt'? ==> 由于系统默认给 mv 设置了别名,因此会有交互。
==> 所以直接使用 mv 与 'mv -i' 效果是一样的
[root@VM-16-64-centos src]$ alias mv
alias mv='mv -i' ==> -i 参数的功能若是目标文件已经存在,就会询问是否覆盖。
[root@VM-16-64-centos src]$ \mv /src/2.txt /src/test.txt
==> 可以使用 '\' 屏蔽系统别名,就不会询问是否覆盖了。
2. rename
rename
是正儿八经重命名文件的命令,它通过字符串替换的方式批量修改文件名。
语法格式:
rename from to file
其中 from、to、file 是三个选项,解释如下:
-
from:代表需要替换或者需要处理的字符(一般是文件名的一部分,也包括扩展名)。 -
to:把前面的 from 代表的内容替换为 to 代表的内容。 -
file:待处理文件,可以用 “ * ” 通配所有的文件。
使用示例:
2.1 批量修改文件名
[root@VM-16-64-centos src]$ ll -h
total 0
-rw-r--r-- 1 root root 0 Nov 11 19:54 test1.txt
-rw-r--r-- 1 root root 0 Nov 11 21:04 test2.txt
-rw-r--r-- 1 root root 0 Nov 11 19:54 test3.txt
[root@VM-16-64-centos src]$ rename "test" "" *
==> 将所有文件的 test 替换为空。
[root@VM-16-64-centos src]$ ll
total 0
-rw-r--r-- 1 root root 0 Nov 11 19:54 1.txt
-rw-r--r-- 1 root root 0 Nov 11 21:04 2.txt
-rw-r--r-- 1 root root 0 Nov 11 19:54 3.txt
2.2 批量修改扩展名
[root@VM-16-64-centos src]$ ll
total 0
-rw-r--r-- 1 root root 0 Nov 11 19:54 1.txt
-rw-r--r-- 1 root root 0 Nov 11 21:04 2.txt
-rw-r--r-- 1 root root 0 Nov 11 19:54 3.txt
[root@VM-16-64-centos src]$ rename .txt .file *.txt
==> 将所有以 .txt 结尾的文件都替换为以 .file 结尾。
[root@VM-16-64-centos src]$ ll
total 0
-rw-r--r-- 1 root root 0 Nov 11 19:54 1.file
-rw-r--r-- 1 root root 0 Nov 11 21:04 2.file
-rw-r--r-- 1 root root 0 Nov 11 19:54 3.file
以上就是 rename
的使用方法了,其实也是很方便的;本篇文章主要为大家介绍了两种重命名文件的方法,都算是比较常用的一个基础命令。总之,无论是 rename
命令,还是 mv
命令均可以完成文件名称的修改,在使用时多注意参数的不同与用法。