Linux文件操作常用命令 linux入门实战教程 ls cd mv cp mkdir more cat tail
目录:
重命名文件和目录是您在Linux系统上经常需要执行的最基本的任务之一。
重命名单个文件很容易,但是一次重命名多个文件可能是一个挑战,特别是对于Linux新手而言。 您可以使用GUI文件管理器或通过命令行终端重命名文件。
在本教程中,我们将向您展示如何使用
mv
和
rename
命令来重命名文件和目录。
使用mv命令重命名文件
mv
命令(短时移动)用于将文件重命名或从一个位置移动到另一位置。
mv
命令的语法如下:
mv source destination
source
可以是一个或多个文件或目录,而
destination
可以是单个文件或目录。
- 如果将多个文件指定为
source,则destination必须是目录。 在这种情况下,source文件将移至目标目录。如果您将单个文件指定为source,而destination目标是现有目录,则该文件将移至指定目录。要重命名文件,您需要指定一个单个文件作为source,单个文件作为destination目标。
例如,要将文件
file1.txt
重命名为
file2.txt
,可以运行:
使用mv命令重命名多个文件
mv
命令一次只能重命名一个文件,但可以与其他命令(例如
find
或inside bash for或while循环)一起使用,以重命名多个文件。
下面的示例演示如何使用Bash for循环通过将
.html
扩展名更改为
.php
来重命名当前目录中的所有
.html
文件。
for f in *.html; do mv -- "$f" "${f%.html}.php" done
让我们逐行分析代码:
- 第一行创建一个for循环并遍历以
.html开头的所有文件的列表。第二行应用于该列表的每一项,并将文件移至新文件,以.php替换.html。${file%.html}正在使用shell参数扩展从文件名中删除.html部分。完成表示循环段的结尾。
我们还可以将
mv
命令与
find
结合使用以实现与上述相同的效果。
find. -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' ;
find命令使用
-exec
开关将当前目录中所有以
.html
结尾的文件一一传递给
mv
命令。 字符串
{}
是当前正在处理的文件的名称。
从上面的示例中可以看到,使用
mv
命令重命名多个文件不是一件容易的事,因为它需要对Bash脚本有充分的了解。
使用重命名命令重命名文件
rename
命令用于重命名多个文件。 该命令比
mv
更高级,因为它需要一些正则表达式的基本知识。
rename
命令有两种版本,语法不同。 在本教程中,我们将使用
rename
命令的perl版本。 如果您的系统上未安装此版本,则可以使用发行版的程序包管理器轻松安装它。
-
在Ubuntu和Debian上安装重命名
sudo apt install rename在CentOS和Fedora上安装重命名
sudo yum install prename在Arch Linux上安装重命名
yay perl-rename ## or yaourt -S perl-rename
rename
命令的语法如下:
rename perlexpr files
rename
命令将根据指定的
perlexpr
正则表达式重命名所有
files
。 您可以在此处了解perl正则表达式。
例如,以下命令会将所有扩展名为
.html
文件更改为
.php
:
rename 's/.html/.php/' *.html
您可以使用
-n
参数来打印要重命名的文件的名称,而无需重命名它们。
rename -n 's/.html/.php/' *.html
输出将如下所示:
rename(file-90.html, file-90.php) rename(file-91.html, file-91.php) rename(file-92.html, file-92.php) rename(file-93.html, file-93.php) rename(file-94.html, file-94.php)
默认情况下,rename命令将不会覆盖现有文件。 传递
-f
参数以允许覆盖现有文件。
rename -f 's/.html/.php/' *.html
以下是一些更常见的有关如何使用重命名命令的示例:
-
用下划线替换文件名中的空格
rename 'y/ /_/' *将文件名转换为小写
rename 'y/AZ/az/' *将文件名转换为大写
rename 'y/az/AZ/' *
结论
到目前为止,您应该对如何使用
mv
和
rename
命令重命名文件有很好的了解。 当然,还有其他命令可以在Linux中重命名文件,例如
mmv
。 受到命令行威胁的新Linux用户可以使用GUI批处理重命名工具,例如Métamorphose。







