linux中如何用rename命令重命名一个文件
我把l.sh重命名为m.sh
用命令 rename l m m.sh
提示Bareword "l" not allowed while "strict subs" in use at (eval 1) line 1.
为什么? 展开
用法如下:
$ rename [options] [perlexpr] [files]
PS:
(1)options
-v 显示成功重命名的文件-n 只显示将被重命名的文件,但是不进行重命名-f 如果文件已存在,覆盖-e 表明需要需要被执行的code,如果没有-e,那么第一个参数将被当成code。
(2)perlexpr
这是一个Perl表达式,文件名应当在其中被改变,没学过Perl也没关系,这个命令用到的语法很像sed,容易上手。
(3)files
需要重命名的文件。
扩展资料:
linux中如何用rename命令重命名一个文件示例:
1、去除文件扩展名
$ rename 's/\.bak$//' *.bak
2、去除文件名中的空格
$ rename 's/ //g' *
3、文件名转为小写
$ rename 'y/A-Z/a-z/' *
4、现在有一堆文件,他们的文件名模式是这样的第一部分-haha-第二部分.file ,现在要把中间的-haha- 删去并把第一部分的字符串和第二部分的字符串对调,可以这样:
$ rename 's/(.*)-haha-(.*)(.file)/$2$1$3/' *.file
2023-06-12 广告
推荐于2019-09-21 · 知道合伙人互联网行家
rename命令用字符串替换的方式批量改变文件名。
语法
rename(参数)
参数
原字符串:将文件名需要替换的字符串;
目标字符串:将文件名中含有的原字符替换成目标字符串;
文件:指定要改变文件名的文件列表。
实例
将test1.txt重命名为test.txt
rename test1.txt test.txt test1.txt
rename命令的格式:
rename
[
-v
]
[
-n
]
[
-f
]
perlexpr
[
files
]
第一个参数:被替换掉的字符串
第二个参数:替换成的字符串
第三个参数:匹配要替换的文件模式
例子:rename
main1.c
main.c
main1.c
将main1.c重命名为main.c
rename支持通配符
?
可替代单个字符
*
可替代多个字符
[charset]
可替代charset集中的任意单个字符
关注《linux就该这么学》,小白轻松变大牛。
注意:如果当前目录下也有个123的文件的话,这个文件是会将它覆盖的!
别被这个命令似乎是 move 的简写而被骗倒……