如何在Linux中使用命令行重命名多个文件夹
我的文件夹结构为dir1,dir2,dir3,如何将其重命名为dir001,dir002,dir003。
如何在Linux中重命名多个文件夹?
mv命令(" mv源目标")将源操作数命名的文件/文件夹重命名为目标操作数命名的目标路径。
但是,在Linux和类似Unix的系统上,mv使用单个文件名和目录/文件夹名。
因此,在本教程中我们学习了在Linux和类似Unix的系统上重命名多个文件夹的替代方法。
如何在Linux中重命名多个文件夹
- 要重命名多个文件夹,可以使用MariaDB/MySQL或Linux实用程序包中的" rename"命令。
- 另一种选择是使用bash for循环。
Linux使用重命名命令重命名多个文件夹
语法为:
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命令创建一些文件夹:
mkdir dir{1..5} ls -d dir*
现在将dir1,dir2重命名为dir001,dir002,依此类推:
rename -v dir dir00 dir? ls -d dir*
请注意,默认情况下,rename命令没有保障选项。
因此,您可能会得到错误的文件/文件夹名称。
建议您首先备份所有数据,然后进行空运行,如下所示:
rename -n -v dir dir00 dir?
不要通过传递-n选项(空运行)进行任何更改,我们添加了-v选项以查看将要执行的操作。
获取有关重命名命令的帮助
运行man命令,如下所示:
man rename
或者
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 loop重命名多个文件夹
假设您有以下内容:
total 0 drwxrwxr-x. 2 Hyman Hyman 40 May 19 11:18 'mp 4 dir 1' drwxrwxr-x. 2 Hyman Hyman 40 May 19 11:18 'mp4 dir 2' drwxrwxr-x. 2 Hyman Hyman 40 May 19 11:18 'music dir 1' drwxrwxr-x. 2 Hyman Hyman 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:
sudo yum install mmv ### <--CentOS/RHEL and co ### sudo apt install mmv ### <-- Ubuntu/Debian and co ### sudo dnf install mmv ### <-- Fedora Linux ###
Fedora 30盒的输出示例:
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命令通过通配符模式移动,复制,追加/链接多个文件/目录。
语法为:
mmv from to mmv [options] from to
假设您要使所有文件夹名称都大写,请尝试:
mmv "dir*" "#u1"
如果要使所有文件夹名称都小写,请尝试:
mmv "dir*" "#l1"
您可以按以下方式将后缀即扩展名从* .C更改为* .cpp:
mmv '*.C' '#1.cpp'
mmv命令是功能强大的cli工具,它具有更多选项。
因此,请阅读mmv的手册页:
man mmv
在Linux中使用thunar GUI工具一次重命名多个文件夹
thunar是Xfce桌面环境的易于使用的文件管理器。
您可以按以下方式安装它:
sudo yum install thunar ### <--CentOS/RHEL and co ### sudo apt install thunar ### <-- Ubuntu/Debian and co ### sudo dnf install thunar ### <-- Fedora Linux ###