当前位置: 首页 > Linux

linux的rename命令

时间:2023-04-06 05:08:09 Linux

通过替换字符串的方式批量修改文件名。rename命令有两个版本,用法不同。C语言版本支持通配符【常用通配符说明】?表示任意字符*表示一个或一个字符串任意字符[charset]可以替换charsetset中的任何单个字符Perl版本,支持正则表达式[常用正则表达式符号说明]^匹配输入的开头$匹配输入的结尾输入。匹配除换行符外的任意字符+匹配前一个字符一次或多次例如“zo+”可以匹配“zoo”,但不能匹配“z”[a-z]表示字符范围,例如“[a-z]”匹配“a"和"z"之间的任何小写字母字符。[^m-z]取反的字符范围。匹配不在指定范围内的字符。区分方法:rename--version如果返回结果中包含util-linux,则表示C语言版本,否则为Perl版本#Perlversion|Ubuntu(18)、Mint(20)默认是Perl版本$rename--version/usr/bin/renameusingFile::Renameversion1.10#C语言版本|Centos(7)默认为C语言版本$rename--versionrename,fromutil-linux2.23.2syntax#Perlversionrename[-h|-m|-V][-v][-0][-n][-f][-d][-e|-Eperlexpr]*|perlexpr[files]#Clanguageversionrename[option]expressionreplacementCharacterfilesfor...Parameters#Perlversion-v,--verboseVerbose:打印成功重命名文件的名称。-0,--null从STDIN读取时,使用\0作为记录分隔符-n,--nono什么都不做:打印要重命名的文件名,但不重命名。-f,--forceoverwrite:允许覆盖现有文件--path,--fullpath重命名完整路径:包括任何目录组件。默认-d,--filename,--nopath,--nofullpath不重命名目录:只重命名路径的文件名部分-h,--help帮助:打印概要和选项。-m,--man手册页:打印手册页。-V,--version版本:显示版本号。-e表达式:作用于文件名的代码。可以重复构建代码(如“perl-e”)。如果没有-e,第一个参数将用作代码。-E语句:对文件名执行操作的代码,如-e,但以“;”终止。#C语言版本-v,--verbose提供哪些文件(如果有)被重命名的视觉反馈-V,--version显示版本信息并退出。-s,--symlink对符号链接目标执行重命名-h,--help显示帮助文本并退出Perlversionrename1.txt2.txtto1.log2.log$rename-v"s/txt/log/g"1.txt2.txt1.txtrenamedas1.log2.txtrenamedas2.log修改文件的后缀rename"s//.html//.php/"*#把.html的后缀改成.phpsuffix批量添加文件后缀rename"s/$//.txt/"*#批量删除所有以txt结尾的文件rename"s//.txt//"*#将所有以txt结尾的文件删除。以.txt结尾的文件名的txt。C语言版本将1.txt2.txt重命名为1.log2.log$rename-vtxtlog1.txt2.txt`1.txt'->`1.log'`2.txt'->`2.log'将当前目录下的.htm批量改成.html>rename.htm.html*.htmfoldercontainsthesefilesfoo1,...,foo9,foo10,...,foo278renamefilesfromfoo1tofoo9tofoo01到foo09>重命名foofoo0foo?foo01到foo99从foo001到foo099的所有文件>重命名foofoo0foo??fromfoo0200tofoo0278中的所有文件都从foo200重命名为foo278,文件名中的foo0被foo替换。>renamefoo0foofoo0[2]*原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门