0

我在目录中放置了一个图像文件:

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

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

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

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

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

谢谢。

4

4 回答 4

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"
于 2013-08-22T04:35:39.530 回答
1

利用:

mv "/root/Desktop/my test dir/image.jpg" "/root/Desktop/my test dir/my test dir.jpg"
于 2013-08-22T04:35:39.093 回答
0

你可以做:

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

IFS="/" arr=( "$x" )
mv "$x" "${arr[1]}/${arr[2]}/${arr[3]}/${arr[3]}.${arr[4]##*.}"
于 2013-08-22T05:45:36.123 回答
0

参数替换。

echo "${pathname##*/}"
echo "${pathname%.*}"
于 2013-08-22T04:33:52.663 回答