重命名中心带有变量的文件夹

时间:2016-07-06 12:58:30

标签: bash shell

我正在尝试重命名我的文件夹。

当前文件夹名称=苹果。我想将它重命名为apsomeple。

"一些"在新名称的中心将是一个变量。

我尝试了以下但是它不起作用。请指教。如果我将它添加到最后进行测试,它就可以了。

name="some"

mv apple ap$nameple # doesn't work
mv apple apple$name # works - just testing

6 个答案:

答案 0 :(得分:3)

您可以使用{}来界定变量的名称:

mv apple ap${name}ple

如果您的变量有可能包含空格字符,与提供的示例不同,那么您还需要在输入新文件名周围加上双引号:

mv apple "ap${name}ple"

答案 1 :(得分:3)

引用你的变量!

mv apple ap"$name"ple

或者,您可以使用花括号(仍然在引号内):

mv apple "ap${name}ple"

有些人可能会说在这种情况下引用并不是绝对必要的,但我个人认为这些好处(一个更强大的脚本)超过了成本(一个可怜的两个额外字符)。

答案 2 :(得分:1)

mv apple "ap${name}ple"

应该有效

为什么目标

需要双引号

考虑

name="some stuff"

mv apple ap${name}ple

单词拆分与${name}一起发生,您将无法获得结果。 所以mv可能会给你:

mv: target ‘stuffple’ is not a directory

mv apple "ap${name}ple"

ap${name}ple被视为单一实体。

答案 3 :(得分:1)

在变量名称周围加上大括号。

mv apple "ap${name}ple"
编辑:在一些本地测试之后,看起来像zsh和bash处理这种情况有点不同。 Bash 需要双引号来防止单词拆分和通配,而zsh 需要双引号,并且无论如何都表现相同。

答案 4 :(得分:1)

您是否尝试过使用双引号......

mv apple ap"$name"ple

答案 5 :(得分:-2)

mv /path/tofolder/oldfilename  /path/tofolder/newname

例如: 如果文件夹位于桌面上

mv /home/Desktop/apple /home/Desktop/apsomeple