Linux批量重命名技巧

1. 批量重命名文件场景

在Linux环境下,我们经常会遇到需要批量重命名文件的场景,比如将多个文件名统一的修改成特定的格式,或者将文件的后缀名进行更改等等。手动一个一个修改文件名是非常繁琐的,而且容易出错。因此,我们可以借助一些技巧和命令来快速批量重命名文件。

2. 使用mv命令进行批量重命名

2.1 批量修改文件名的格式

如果需要将多个文件名统一修改为特定的格式,可以使用mv命令结合通配符来实现。

$ ls

file1.txt file2.txt file3.txt file4.txt

$ mv file*.txt NewFile*.txt

$ ls

NewFile1.txt NewFile2.txt NewFile3.txt NewFile4.txt

在上面的例子中,我们将以.txt结尾的所有文件名都修改为以NewFile开头,并保留原来的后缀名。

2.2 批量修改文件的后缀名

有时候我们需要将一批文件的后缀名进行更改,比如将.jpg的图片文件后缀名修改为.png。同样地,我们可以使用mv命令结合通配符来实现。

$ ls

image1.jpg image2.jpg image3.jpg

$ mv image*.jpg image*.png

$ ls

image1.png image2.png image3.png

上述示例中,我们将以.jpg为后缀名的文件名都修改为以.png结尾。

3. 使用rename命令进行批量重命名

除了使用mv命令以外,我们还可以使用rename命令来进行批量重命名。rename命令可以方便地对文件名进行批量替换、删除、添加等操作。

3.1 批量替换文件名中的字符串

有时候我们需要将文件名中的某个字符串替换为另一个字符串,rename命令可以很方便地完成这个任务。

$ ls

file1.txt file2.txt file3.txt

$ rename 's/file/NewFile/' file*.txt

$ ls

NewFile1.txt NewFile2.txt NewFile3.txt

上面的示例中,我们将文件名中的"file"替换为"NewFile"。

3.2 批量删除文件名中的指定字符串

如果需要批量删除文件名中的某个字符串,也可以使用rename命令。

$ ls

prefix_file1.txt prefix_file2.txt prefix_file3.txt

$ rename 's/prefix_//' prefix_*.txt

$ ls

file1.txt file2.txt file3.txt

在上述示例中,我们将文件名中的"prefix_"删除。

4. 使用批量重命名脚本实现更复杂的重命名

如果需要进行更复杂的批量重命名操作,可以使用自定义的重命名脚本。下面是一个示例脚本:

#!/bin/bash

# 遍历当前目录下所有的文件

for file in *; do

if [ -f "$file" ]; then

# 获取文件名和后缀名

filename="${file%.*}"

extension="${file##*.}"

# 在文件名前面添加前缀"new_"

new_filename="new_${filename}.${extension}"

# 使用mv命令进行重命名

mv "$file" "$new_filename"

fi

done

运行上述脚本,会将当前目录下的所有文件名都添加一个"new_"前缀。

总结

通过mv命令和rename命令的使用,我们可以很方便地实现批量重命名文件的操作。如果需要更复杂的重命名操作,可以借助自定义脚本来实现。重命名文件时,请务必谨慎操作,避免意外删除或修改重要文件。

操作系统标签