Linux 批量修改文件名

2023年 7月 20日 140.8k 0

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

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

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

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

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 命令批量修改文件名

如果你的系统未安装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' *

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论