如何在Linux中使用命令行重命名多个文件夹

时间:2020-01-09 10:39:37  来源:igfitidea点击:

我的文件夹结构为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 ###