用于将映像文件重命名为目录名称的Shell脚本

时间:2013-08-22 04:30:55

标签: bash shell

我将图像文件放在目录中:

"/root/Desktop/my test dir/image.jpg"

我需要按如下方式重命名图像文件(使用一些shell脚本):

image.jpg => "my test dir.jpg"

注意:此目录中只有一个单一图像文件

有人可以给我一些提示吗?

感谢。

4 个答案:

答案 0 :(得分:2)

dir='/root/Desktop/my test dir/'

dirBase=$(basename -- "$dir") # should be equal to 'my test dir'
file=$(echo "$dir/"*) # things will break if your directory has more than one file
fileExtension=${file##*.} # 'jpg' in your case
mv -- "$file" "$dir/$dirBase.$fileExtension"

答案 1 :(得分:1)

使用:

mv "/root/Desktop/my test dir/image.jpg" "/root/Desktop/my test dir/my test dir.jpg"

答案 2 :(得分:0)

Parameter substitution.

echo "${pathname##*/}"
echo "${pathname%.*}"

答案 3 :(得分:0)

你可以这样做:

x="/root/Desktop/my test dir/image.jpg"

IFS="/" arr=( "$x" )
mv "$x" "${arr[1]}/${arr[2]}/${arr[3]}/${arr[3]}.${arr[4]##*.}"