bash重命名保留文件扩展名,name变量
我有一个名为image.jpg的文件,但扩展名可以是另一个 我想用bash重命名这些文件 保留扩展名,但名称位于contains变量中 前 var1=“猫” var2=“狗” 我想我应该在文件夹中查找名为image***的文件,复制扩展名,然后在新名称中使用变量名+扩展名bash重命名保留文件扩展名,name变量,bash,Bash,我有一个名为image.jpg的文件,但扩展名可以是另一个 我想用bash重命名这些文件 保留扩展名,但名称位于contains变量中 前 var1=“猫” var2=“狗” 我想我应该在文件夹中查找名为image***的文件,复制扩展名,然后在新名称中使用变量名+扩展名 namefinal=$random ext=`echo $ls image*.*` echo $ext EXTENSION=`echo "$ext" | cut -d'
namefinal=$random
ext=`echo $ls image*.*`
echo $ext
EXTENSION=`echo "$ext" | cut -d'.' -f2`
echo $EXTENSION
mv $ext $random.$EXTENSION
好了!,谢谢。假设
$file
包含“image.png”:
假设
$file
包含“image.png”:
输入名称到输出名称的映射来自哪里?您如何知道在哪个文件上使用哪个名称?请参阅,在脚本中使用
ls
几乎总是错误的(出于中的原因),ls=/bin/ls
也是错误的,然后使用$ls
代替运行ls
(一般来说,对于任何命令,shell在第一次查找后都会自动进行缓存,因此自己进行缓存只会使脚本更难阅读,并增加可能出现错误的可能性——没有显著的性能改进;如果使用which
进行查找,则会主动降低速度,这比让shell搜索路径本身)。输入名称到输出名称的映射从何而来?您如何知道在哪个文件上使用哪个名称?请参见,在脚本中使用ls
几乎总是错误的(出于中的原因),ls=/bin/ls
,然后使用$ls
代替运行ls
(一般来说,对于任何命令,shell在第一次查找后都会自动进行缓存,因此自己进行缓存只会使脚本更难阅读,并增加可能出现错误的可能性——没有显著的性能改进;如果使用which
进行查找,则会主动降低速度,这比让shell搜索路径本身)。没有人要求您这样做。@shoryunix,为什么您认为信息使您无法使用此答案?没有人要求您这样做。@shoryunix,为什么您认为信息使您无法使用此答案?
namefinal=$random
ext=`echo $ls image*.*`
echo $ext
EXTENSION=`echo "$ext" | cut -d'.' -f2`
echo $EXTENSION
mv $ext $random.$EXTENSION
mv "$file" "$var1.${file##*.}"