【发布时间】:2015-04-17 18:46:33
【问题描述】:
随机有一个名为 image.jpg 的文件,但扩展名可以是其他文件..
我想用 bash 重命名这些文件
保留扩展名,但名称在包含变量中。
前
var1="猫"
var2="狗"
image.png -> cat.png
image.jpeg -> dog.jpeg
我想我应该在文件夹中查看名为 image *. *,复制扩展名,然后在新名称中使用变量名+扩展名。
namefinal=$random
ext=`echo $ls image*.*`
echo $ext
EXTENSION=`echo "$ext" | cut -d'.' -f2`
echo $EXTENSION
mv $ext $random.$EXTENSION
完成!谢谢。
【问题讨论】:
-
输入名到输出名的映射从何而来?你怎么知道在哪个文件上使用哪个名称?
-
顺便说一句,在脚本中使用
ls几乎总是错误的(原因在 mywiki.wooledge.org/ParsingLs 中),ls=/bin/ls也是如此,然后使用$ls代替运行ls(一般来说,对于任何命令;shell 会在第一次查找后自动进行缓存,所以自己做只会使您的脚本更难阅读并增加潜在的错误 - 没有显着的性能改进;主动使事情变慢 如果您使用which进行查找,这比让 shell 搜索 PATH 本身的开销更大)。
标签: bash