在文章
http://tips.webdesign10.com/how-to-bulk-rename-files-in-linux-in-the-terminal里介绍了rename更改文件后缀的办法,却没有讲添加后缀的命令(对他来说太简单了吧!汗)。于是初学bash的我就试了几天...,得到
添加和
删除文件后缀的命令
一般用法:
(本来用于改缓存后缀,然而现在chrome缓存MIME类型都加密(?)了,用的就少了)
以文件名为f_000ea6的jpeg缓存为例:
rename 's/(.*)/$1.jpg/' *
f_000ea6 to f_000ea6.jpg
添加后缀.jpg(.png/gif/etc),方便在windows下查看
rename 's/\.jpg//' *
f_000ea6.jpg to f_000ea6
删除后缀
rename 's/----/---/' *
$、\、*是干什么用的?
===========
尝试记录:
===========
*@debian:/***bash$ rename 's/\.jpg/$//' s///
Final $ should be \$ or $name at (user-supplied code), within string
syntax error at (user-supplied code), near "s/\.jpg/$/"
----------------
*@debian:/***$ rename 's/\.jpg/$a/' *
Use of uninitialized value $File::Rename::a in substitution (s///) at (eval 4) line 1.
报错但是成功了,没有$1
----------
rename 's/\.jpg/\$1/' *
.jpg to f_000ea6$1
-
rename 's/\.jpg/\$2/' *
.jpg to f_000ea6$2
-
rename 's/\.jpg/\$/' *
.jpg to f_000ea6$
-
rename 's/\.jpg/\ /' *
.jpg to f_000ea6 |
-
rename 's/\.jpg/$1/' *
.jpg to f_000ea6$
-
rename 's/\.jpg//' *
.jpg to f_000ea6
get it
总结:尝试了这么多次,就是对 rename使用的通配符 不了解(此处少了一本教材),还有 rename的语义顺序 的不明白造成“屡试屡不爽”,还是cmd里的ren比较简单。
In windows cmd:
all to *.jpg
ren f*.* *.jpg
del .jpg
ren *.jpg *.
.jpg to .png
ren *.jpg *.png
ren 源文件名 目标文件名
简单任性