linux

Linux中如何批量重命名文件

小樊
48
2025-04-03 16:55:15
栏目: 智能运维

在Linux中,可以使用多种方法来批量重命名文件。以下是一些常用的命令和方法:

使用 rename 命令

rename 命令是一个非常强大的工具,可以用来批量重命名文件。它的基本语法如下:

rename [选项] 's/原字符串/新字符串/' 文件名

例如,如果你想将当前目录下所有以 .txt 结尾的文件中的 old 替换为 new,可以使用以下命令:

rename 's/old/new/' *.txt

使用 for 循环

你可以使用 for 循环来遍历文件并进行重命名。例如:

for file in *.txt; do
    mv "$file" "${file%.txt}_new.txt"
done

这个命令会将当前目录下所有 .txt 文件重命名为在原文件名基础上添加 _new

使用 mmv 命令

mmv 是一个专门用于批量重命名文件的工具,它的语法相对简单直观。首先需要安装 mmv

sudo apt-get install mmv  # Debian/Ubuntu 系统
sudo yum install mmv      # CentOS/RHEL 系统

然后可以使用以下命令进行重命名:

mmv "*.txt" "#1_new.txt"

这个命令会将当前目录下所有 .txt 文件重命名为在原文件名基础上添加 _new

使用 findmv 命令组合

如果你需要更复杂的重命名逻辑,可以使用 find 命令结合 mv 命令。例如:

find . -type f -name "*.txt" -exec sh -c 'mv "$0" "${0%.txt}_new.txt"' {} \;

这个命令会在当前目录及其子目录下查找所有 .txt 文件,并将它们重命名为在原文件名基础上添加 _new

使用 pathlib 模块(Python)

如果你熟悉 Python,可以使用 pathlib 模块来批量重命名文件。以下是一个示例脚本:

from pathlib import Path

for file_path in Path('.').glob('*.txt'):
    new_name = file_path.stem + '_new' + file_path.suffix
    file_path.rename(new_name)

这个脚本会将当前目录下所有 .txt 文件重命名为在原文件名基础上添加 _new

选择适合你需求的方法进行批量重命名即可。

0
看了该问题的人还看了