方法一:Rename函數(shù)
Linux下修改文件名有mv和rename甸陌。其中mv命令只能對單個文件重命名,這是mv命令和rename命令的在重命名方面的根本區(qū)別盐股。
linux的rename命令有兩個版本邀层,一個是c語言版本的,一個是perl語言版本的遂庄,判斷方法:
輸入man rename 看到第一行是:
RENAME(1) Linux Programmer’s Manual RENAME(1)
這個就是C語言版本的
而如果出現(xiàn):
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結(jié)尾
批量刪除文件名rename "s//.txt//" * //
把所有以.txt結(jié)尾的文件名的.txt刪掉
方法二:mv函數(shù)
- 在文件夾shell下創(chuàng)建文件10個文件
touch tmp_{1..10}.txt
- 找到含有“_“”的文件夾霹肝。
find ./ -name "*_*"
- 讀取id, 用mv改名臭蚁,$為自己理解為賦值后的id垮兑,格式為while磕谅; do; done
find ./ -name "*_*" | while read id; do mv $id ${id/_/-}; done