Linux重命名文件是rename。
Linux中rename和mv都可以对文件重命名,在此对rename命令和mv命令在重命名文件方面做一个比较。
可以看到mv命令确实有重命名的功能,但是实际应用中,它只能对单个文件重命名,rename命令是专用于文件重命名的,rename除了给单个文件重命名,还可以批量文件重命名。
Linux的rename命令有两个版本,一个是C语言版本的,一个是Perl语言版本的。
早期的Linux发行版基本上使用的是C语言版本的,现在已经很难见到C语言版本的了,由于历史原因,在Perl语言大红大紫的时候,Linux的工具开发者们信仰Perl能取代C,所以大部分工具原来是C版本的都被Perl改写了,因为Perl版本的支持正则处理,所以功能更加强大,已经不再需要C语言版本尘亮的了。
Linux系统的发展历程:
Linux操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:Unix操作系统、MINIX操作系统、GNU计划、POSIX标准和Internet网络。
20世纪80年代,计算机硬件的性能不断提高,PC的市场不断扩大,当时派御宽可供计算机选用的操作系统主要有Unix、DOS和MacOS这几种。Unix价格昂贵,不能运行于PC;DOS显得简陋,且源代码被软件厂商严格保密;MacOS是一种专门用于苹果计算机的操作系统。
此时,计算机科学领域迫切需要一个更加完善、强大、廉价和完全开放的操作系统。
在吸收了MINIX精华的基础上,Linus于1991年写出了属于自己的Linux操作系统,版本为Linux0.01,是Linux时代开始的标志。他利用Unix的核心,去除繁杂的核心程序,改写成拆帆适用于一般计算机的x86系统,并放在网络上供大家下载,1994年推出完整的核心Version1.0。
『贰』 linux 重命名大量文件
linux下重命名文件或文件夹、批量实现重命名文件方法
一、
linux下重命名文件或文件夹的命令mv既可以重命名,又可以移动文件或文件夹.
例子:将目录A重命名为B
mv A B
例子:将/a目录移动到/b下,并重命名为c
mv /a /b/c
其实在文本模式中要重命名文件或目录的话也是很简单的,我们只需要使用mv命令就可以了,比如说我们要将一个名为abc的文件重命名为1234就可以这样来写:mv abc 1234,但是要注意的是,如果当前目录下也有个1234的文件的话,我们的这个文件是会将它覆盖的。
二、
Linux批量重命名文件会涉及到改变一个字母、改变一些相连字母、改变某些位置的字母、在最前面加上某些字母、或者改变字母的大小写。完成这里五个方法基本上就会解决了Linux批量重
命名的工作。
1、我想把它们的名字的第一个1个字母变为"q",其它的不变
[root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | sed 's/^./q/'`; done
或者写个脚本,显得更加清晰:
for file in `ls`
do
newfile =`echo $i | sed 's/^./q/'`
mv $file $newfile
done
2、修改前面5个字母为zhaozh
[root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | sed 's/^...../zhaozh/'`; done
3、修改后面5个字母为snail
[root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | sed 's/.....$/snail/'`; done
4、在前面添加 _hoho_
[root@pps mailqueue]# for i in `ls`; do mv -f $i `echo "_hoho_"$i`; done
5、所有的小写字母变大写字母
[root@pps mailqueue]# for i in `ls`; do mv -f $i `echo $i | tr a-z A-Z`; done
上面是五中完成有关Linux批量重命名方法。
『叁』 Linux批量重命名文件命令
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 仅共参考。
『肆』 Linux文件批量重命名,求大神脚本应该怎么写
看到你提问时间是10月22日。我估计你的工作早就做完了。我回答也没什么意思。
不过,我觉得你这个任务还是可以尝试一下的。
bash下不同的命令组合能完成相同的任务。很多高手能使用一句话命令one-liner。
我自己远远没达到那种水平。所以在此分享一下反映我当前水平的初级脚本, 希望有幸能帮助朋友们解决小问题。
#使用方法:
把要处理的一个或多个文件放到任意一个目录下
执行脚本,拖动目录到终端,回车继续执行即可。
脚本:
#!/bin/bash
#mp.00-mp.63
DELIM="'"
N=2
echo"Pleasepullthefoldertome."
readstorepath1
storepath1=`echo"$storepath1"|cut-d"$DELIM"-f$N`
echo
cd"$storepath1"
formin`ls.`
do
num1=$m;num1=${num1##*.};num1=${num1##0};num1=$[num1+64]
printf-vnum2'%03d '$num1;
echorename$mas${m%%.*}.$num2
mv$m${m%%.*}.$num2
done
执行输出:
./rename.sh
Pleasepullthefoldertome.
'/文件升序重命名/files'
renamemp.00asmp.064
renamemp.01asmp.065
renamemp.02asmp.066
renamemp.03asmp.067
renamemp.04asmp.068
renamemp.05asmp.069
>>>
renamemp.53asmp.117
renamemp.54asmp.118
renamemp.55asmp.119
renamemp.56asmp.120
renamemp.57asmp.121
renamemp.58asmp.122
renamemp.59asmp.123
renamemp.60asmp.124
renamemp.61asmp.125
renamemp.62asmp.126
renamemp.63asmp.127
『伍』 Linux下批量修改文件名
Linux下修改文件名有mv和rename。 其中mv命令只能对单个文件重命名 , 这是mv命令和rename命令的在重命名方面的根本区别。
linux的rename命令有两个版本,一个是c语言版本的,一个是perl语言版本的,判断方法:
输入man rename 看到第一行是:
RENAME(1) Linux Programmer’s Manual RENAME(1)
这个就是C语言版本的
而如果出现:
RENAME(1) Perl Programmers Reference Guide RENAME(1) 则是Perl版本的了
C语言版本格式:rename 原字符串 新字符串 文件名
Perl语言版本格式:rename 's/原字符串/新字符串/' 文件名
rename支持正则表达式
例子:
字母的替换 rename "s/AA/aa/" * // 把文件名中的AA替换成aa
修改文件的后缀 rename "s//.html//.php/" * // 把.html 后缀的改成 .php后缀
批量添加文件后缀 rename "s/$//.txt/" * // 把所有的文件名都以txt结尾
批量删除文件名 rename "s//.txt//" * // 把所有以.txt结尾的文件名的.txt删掉
在文件夹shell下创建文件10个文件
touch tmp_{1..10}.txt
找到含有“_“”的文件夹。
find ./ -name "*_*"
读取id, 用mv改名,$为自己理解为赋值后的id,格式为
『陆』 Linux如何对文件,文件夹重命令 rename好像不起效果啊
mv 123 abc
123是原名,abc是想要改的名字
『柒』 linux批量修改目录或者文件名
查看/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: