find命令是Linux系统管理员中最强大的工具之一。它可以根据用户指定文件属性在目录搜索文件目录,并且可以对搜索结果执行用户指定的操作。

您可以使用find命令根据权限,类型,日期,所有权,大小等搜索文件目录。它也可以与其他工具结合使用,例如grep命令sed命令。

rename命令是通过指定搜索表达式来批量重命名文件。rename命令其实是Perl脚本。您可以在此处阅读Perl正则表达式的更多信息。

在本教程我们将说明如何在Liunx 组合使用find exec命令mvrename命令递归修改文件扩展名。

详解find exec用法组合 | myfreax
Linux的find命令是根据指定条件查找文件和目录的绝佳工具。您可以通过对找到的文件执行特定操作来将您的find命令提升到一个新的水平

Find exec 命令批量修改文件名

使用find exec命令可让你以轻松重命名文件。在组合使用find exec命令还需要使用mv。mv 命令是用于移动文件或者重命名文件

以下命令将会修改当前目录的所有*.txt文件扩展名为.js-exec运行sh命令启动子shell进程。

sh -c 'mv "$1" "${1%.txt}.edefg"'子shell进程运行命令mv "$1" "${1%.txt}.js"${1%.txt}.js参数将会匹配原始文件扩展名的txt并替换为js

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

rename 命令批量修改文件名

Linux rename命令重命名多个文件与目录 | myfreax
使用mv命令重命名多个文件和目录可能是一个乏味的过程,因为它涉及使用管道

如果你的系统未安装rename,命令将显示rename: command not found,rename命令未找到。您可以使用发行版的软件包管理器轻松安装rename。

如果你的计算机运行的是基于Debian的Linux发行版,例如Ubuntu,Linux mint。请运行命令sudo apt update && sudo apt install rename安装rename。

如果你的计算机运行的是基于RedHat的Linux发行版,例如CentOS,Fedora。请运行命令sudo dnf install prename安装prename。

sudo apt update
sudo apt install rename
sudo yum install prename

用下划线替换文件名中的空格

rename 'y/ /_/' *

将文件名转换为小写

rename 'y/A-Z/a-z/' *

将文件名转换为大写

rename 'y/a-z/A-Z/' *

从文件名中删除.bak

rename 's/\.bak$//' *.bak

将.jpeg和.JPG文件名重命名为.jpg

rename 's/\.jpe?g$/.jpg/i' *