Bash 语言 批量重命名文件实战示例

Bash阿木 发布于 2025-06-13 18 次阅读


Bash 语言批量重命名文件实战示例

在处理大量文件时,文件命名的一致性和规范性显得尤为重要。Bash 脚本作为一种强大的命令行工具,可以轻松实现文件的批量重命名。本文将围绕 Bash 语言,通过一系列实战示例,展示如何高效地批量重命名文件。

前提条件

在开始之前,请确保您的系统中已安装 Bash。大多数 Linux 发行版默认包含 Bash,Windows 用户可以通过安装 Git Bash 或 Cygwin 来使用 Bash。

文件重命名基础

在 Bash 中,可以使用 `mv` 命令来重命名文件。以下是一个简单的例子:

bash
mv oldname newname

这个命令会将名为 `oldname` 的文件重命名为 `newname`。

实战示例一:按规则批量重命名

假设我们有一个文件列表,文件名为 `file1.txt`、`file2.txt`、`file3.txt` 等,我们希望将它们重命名为 `document1.txt`、`document2.txt`、`document3.txt` 等。

bash
for i in {1..10}; do
mv "file$i.txt" "document$i.txt"
done

这段脚本会遍历数字 1 到 10,将每个 `file$i.txt` 文件重命名为 `document$i.txt`。

实战示例二:添加前缀或后缀

如果我们想给所有文件添加一个前缀或后缀,可以使用以下命令:

bash
添加前缀
for file in .txt; do
mv "$file" "prefix_$file"
done

添加后缀
for file in .txt; do
mv "$file" "${file}_suffix"
done

这两个脚本分别给所有 `.txt` 文件添加了前缀 `prefix_` 和后缀 `_suffix`。

实战示例三:根据文件内容重命名

假设我们有一个包含文件名的文本文件 `filenames.txt`,内容如下:


file1.txt
file2.txt
file3.txt

我们希望将这些文件重命名为 `document1.txt`、`document2.txt`、`document3.txt`。

bash
while read -r line; do
mv "$line" "${line//file/document}.txt"
done < filenames.txt

这段脚本会读取 `filenames.txt` 中的每一行,将 `file` 替换为 `document`,并重命名文件。

实战示例四:批量重命名特定格式的文件

如果我们只想重命名特定格式的文件,比如所有 `.jpg` 文件,可以使用以下命令:

bash
for file in .jpg; do
mv "$file" "${file%.jpg}_new.jpg"
done

这段脚本会将所有 `.jpg` 文件重命名为以 `_new` 结尾的文件,例如 `image1_new.jpg`、`image2_new.jpg` 等。

实战示例五:批量重命名并移动文件

如果我们想将文件重命名并移动到另一个目录,可以使用以下命令:

bash
for file in .txt; do
mv "$file" "/path/to/destination/$file"
done

这段脚本会将当前目录下的所有 `.txt` 文件移动到 `/path/to/destination` 目录。

总结

通过以上实战示例,我们可以看到 Bash 语言在批量重命名文件方面的强大功能。通过灵活运用 `mv` 命令和循环结构,我们可以轻松实现各种复杂的文件重命名需求。在实际应用中,可以根据具体场景和需求,调整脚本中的命令和逻辑,以达到最佳效果。

注意事项

1. 在执行文件重命名操作之前,请确保备份重要文件,以防意外。
2. 在使用通配符(如 ``)时,请小心,以免误删文件。
3. 在编写脚本时,注意使用引号来避免特殊字符导致的错误。

希望本文能帮助您更好地掌握 Bash 语言在文件重命名方面的应用。