如何使用命令行在 Linux 中重命名多个文件夹
mv 命令 ( mv source target) 将源操作数命名的文件/文件夹重命名为目标操作数命名的目标路径。但是,在 Linux 和类 Unix 系统上,mv 只能使用单个文件名和目录/文件夹名称。因此,本页显示了在 Linux 和类 Unix 系统上重命名多个文件夹的替代方法。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 是的 |
要求 | Linux 终端 |
类别 | 文件管理 |
操作系统兼容性 | Alma • Alpine • Arch • Debian • Fedora • Linux • Mint • openSUSE • Pop!_OS • RHEL • Rocky • Stream • SUSE • Ubuntu |
预计阅读时间 | 5 分钟 |
如何在 Linux 中重命名多个文件夹
- 要重命名多个文件夹,可以使用renameMariaDB/MySQL 或 Linux 实用程序包中的命令。
- 另一个选择是使用bash for 循环。
Linux 使用 rename 命令重命名多个文件夹
语法是:
$ rename expression replacement file
重命名命令示例
让我们看一些例子。使用 touch 命令创建一些文件,如下所示
$ touch file{1..4}.txtz
列出这些文件:
$ ls file*
现在将文件扩展名从 .txtz 改为 .txt,即修复 .txtz 文件的扩展名:
$ rename -v .txtz .txt *.txtz
借助 ls 命令进行验证
$ ls file*
其中,
- -v:详细输出
- .txtz匹配所有 .txtz 扩展名
- .txt替换为 .txt
- *.txtz处理当前工作目录中的所有 *.txtz 文件
处理文件夹
让我们使用mkdir 命令创建一些文件夹:
现在将 dir1、dir2 重命名为 dir001、dir002 等等:
请注意,rename 命令默认没有安全保护选项。因此,您可能会得到错误的文件/文件夹名称。建议您首先备份所有数据并按如下方式进行试运行:
不要通过传递选项(试运行)进行任何更改,我们添加了选项来查看会进行什么。
$ mkdir dir{1..5}
$ ls -d dir*
$ rename -v dir dir00 dir?
$ ls -d dir*
$ rename -n -v dir dir00 dir?
-n-v
获取有关重命名命令的帮助
运行 man 命令如下:
$ man rename
或者传递 --help 选项如下:
$ rename --help
示例输出:
Options:
-v, --verbose explain what is being done
-s, --symlink act on the target of symlinks
-n, --no-act do not make any changes
-o, --no-overwrite don't overwrite existing files
-i, --interactive prompt before overwrite
-h, --help display this help
-V, --version display version
使用bash for 循环重命名多个文件夹
假设您有如下目录或文件夹:
total 0 drwxrwxr-x. 2 vivek vivek 40 May 19 11:18 'mp 4 dir 1' drwxrwxr-x. 2 vivek vivek 40 May 19 11:18 'mp4 dir 2' drwxrwxr-x. 2 vivek vivek 40 May 19 11:18 'music dir 1' drwxrwxr-x. 2 vivek vivek 40 May 19 11:18 'music dir 2 '
我们需要删除文件夹名称中的空格。运行:
for i in * do mv -v "$i" "${i// /}" done
在这个最后的例子里将使用 POSIX shell 将所有 *.PY 文件重命名为 *.py:
for j in *.PY do mv -v -- "$j" "${j%.PY}.py done
mmv – Linux 中用于重命名多个文件的命令行工具
首先根据您的发行版使用apt 命令/ apt-get 命令/ yum 命令/ apt-get 命令安装 mmv :
Fedora 30 框的示例输出:
$ sudo yum install mmv ### <--CentOS/RHEL and co ###
$ sudo apt install mmv ### <-- Ubuntu/Debian and co ###
$ sudo dnf install mmv ### <-- Fedora Linux ###
Dependencies resolved. ============================================================================= Package Architecture Version Repository Size ============================================================================= Installing: mmv x86_64 1.01b-30.fc30 fedora 38 k Transaction Summary ============================================================================= Install 1 Package Total download size: 38 k Installed size: 67 k Is this ok [y/N]: y Downloading Packages: mmv-1.01b-30.fc30.x86_64.rpm 23 kB/s | 38 kB 00:01 ----------------------------------------------------------------------------- Total 13 kB/s | 38 kB 00:03 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : mmv-1.01b-30.fc30.x86_64 1/1 Running scriptlet: mmv-1.01b-30.fc30.x86_64 1/1 Verifying : mmv-1.01b-30.fc30.x86_64 1/1 Installed: mmv-1.01b-30.fc30.x86_64 Complete!
mvm 命令通过通配符模式移动、复制、附加/链接多个文件/目录。语法是:
假设您想将所有文件夹名称都改为大写,请尝试:
如果您想将所有文件夹名称都改为小写,请尝试:
您可以将后缀(即扩展名)从 *.C 更改为 *.cpp,如下所示:
mmv 命令是一个功能强大的命令行工具,它有更多选项。因此,请阅读 mmv 的手册页:
$ mmv from to
$ mmv [options] from to
$ mmv "dir*" "#u1"
$ mmv "dir*" "#l1"
$ mmv '*.C' '#1.cpp'
$ man mmv
使用 thunar GUI 工具在 Linux 中一次重命名多个文件夹
thunar 是 Xfce 桌面环境的一个易于使用的文件管理器。您可以按如下方式安装它:
thunar 的示例会话:
$ sudo yum install thunar ### <--CentOS/RHEL and co ###
$ sudo apt install thunar ### <-- Ubuntu/Debian and co ###
$ sudo dnf install thunar ### <-- Fedora Linux ###
具有批量重命名功能的 Xfce 桌面环境文件管理器
结论
您学习了如何使用各种选项在 Linux 中重命名多个文件夹。有关更多信息,请参阅我的页面“ Linux 在 Shell 提示符下重命名多个文件”。rename 命令是 util-linux 包的一部分,可在此处获取。
- Unix 或 Linux 重命名名称中有空格的目录
- Linux 在 Shell 提示符下重命名多个文件
- 如何使用命令行在 Linux 中重命名多个文件夹