linux批量修改目录或者文件名

linux批量修改目录或者文件名,第1张

查看/home下所有子目录的ok.txt并修改成OK.txt

linux 批量重名名

Linux Shell 批量重命名的方法总览

1、删除所有的 .bak 后缀:

2、把 .jpe 文件后缀修改为 .jpg:

3、把所有文件的文件名改为小写:

4、将 abcd.jpg 重命名为 abcd_efg.jpg:

5、将 abcd_efg.jpg 重命名为 abcd_lmn.jpg:

6、把文件名中所有小写字母改为大写字母:

7、把格式 *_?.jpg 的文件改为 *_0?.jpg:

8、把文件名的前三个字母变为 vzomik:

9、把文件名的后四个字母变为 vzomik:

rename

相关命令:mv

rename 用于 对文件进行命名管理,可进行批量命名并支持正则表达式, rename命令存在两个版本用法上有所区别 一个是 C语言版本支持通配符,另一个是 Perl版本.支持正则表达式

参数

-n *** 作预览,在不更改文件名称情况下,显示执行后的结果

-f强制执行

【常用通配符说明】

?表示一个任意字符

*表示一个或一串任意字符

-------------------------------------------------

【常用正则表达式符号说明】

^匹配输入的开始位置

$匹配输入的结尾

.匹配除换行符外的任意字符

+匹配前一个字符一次或多次 例如,"zo+"可以匹配"zoo",但不匹配"z"

[a-z]表示某个范围内的字符,例如,"[a-z]"匹配"a"与"z"之间的任何一个小写字母字符。

[^m-z]否定的字符区间。与不在指定区间内的字符匹配。

最后更新 2013-05-17 10:41:4

[root@localhost www]# rename 's/$/\.^abc/' /home/www/def #给www目录下的abc 更改为def 仅共参考。

这两天在使用Ubuntu系统上进行开发软件的安装,一直遇到创建的Android Studio图标无法使用的问题,创建的图标提示「应用程序启动错误」。在网上也找了很多文章,都是说文件夹中包含空格。但是文件路径确实没包含空格,但是包含-,即"android-studio",所以准备重命名进行尝试,但是遇到"bareword not allowed"的问题。

Linux下对文件重命名有两种命令: mv ,rename

mv很简单,move文件移动

mv /dir/file1 /dir2/file1

两个参数,第一个是源文件,第二个是目的地,如果第二个参数文件名不一样,则会重命名。

当两个参数不带目录,只有文件名时,那就是重命名了。这是单个文件的重命名。

rename arg1 arg2 arg3

rename才是真正的批量重命名命令。而且他是3个参数,不是2个。

arg1:旧的字符串

arg2:新的字符串

arg3:匹配要重命名的文件,可以使用3种通配符,*、?、[char],*表示任意多个字符,?表示单个字符,[char]匹配char单个自定的精确字符,可以填写任意字符,foo[a]*表示只匹配fooa开头的文件名,如果一个文件是foobcc.txt,是不会被匹配的。

值的注意的是,此命令在不同的Linux版本也有不同,Debian一系的 *** 作系统别有用法。举例说明:

比如/home下有两个文件 abbcc.txt, addbb.txt , a.txt

我想把a替换为xxx,命令是这样的 : rename “a” “xxx” *.txt

那么它会首先去匹配有哪些文件需要修改,这里凡是.txt后缀的文件都会被匹配,如果改成?.txt则只会匹配到一个文件,那就是a.txt。然后把匹配到的文件中的a字符替换为xxx,注意测试时abab.txt这样的,只会替换第一个a,有待再了解。

说到Debian一系的 *** 作系统,比如Ubuntu,这个命令这样使用是不对的,报错,向下面这样的:

Bareword “a” not allowed while “strict subs” in use at (eval 1) line 1.

经过Google之后发现有这样的说法:

On Debian-based distros it takes a perl expression and a list of files. you need to would need to use:

rename ‘s/foo/foox/’ *

这里是一个perl表达式,好理解点说就是综合了前两个参数为1个,这样就只需要2个参数,而非上面所说的3个参数形式。

所以在Ubuntu下执行上面举例的重命名时,命令是这样的:rename ‘s/a/xxx/’ *.txt


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8491782.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-17
下一篇2023-04-17

发表评论

登录后才能评论

评论列表(0条)

    保存