在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
。
使用 find
和 mv
命令组合
如果你需要更复杂的重命名逻辑,可以使用 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
。
选择适合你需求的方法进行批量重命名即可。