用于复制为其父目录命名的文件的命令行

时间:2013-09-10 17:41:41

标签: shell

我这里有脑痉挛。我希望能够做到这样的事情......

$ pwd
/user/red/thing1
$ cp ../file.txt basename `pwd`.txt

...并将生成的文件命名为thing1.txt。当我运行上面的命令行时,我收到此错误cp: target ``/users/red/thing1/thing1.txt' is not a directory,这对我来说似乎很奇怪。

谢谢!

2 个答案:

答案 0 :(得分:3)

您正在尝试复制basename,这意味着文件的多个副本到目录。

也许你的意思是:

cp ../file.txt "$(basename $(pwd)).txt"

答案 1 :(得分:2)

cp ../file.txt $(basename $(pwd)).txt

请勿尝试使用后引号:

cp ../file.txt `basename \`pwd\``.txt

好的 - 这是可行的,但不像$(...)那么容易。

这假设基本名称中没有空格;如果您需要担心空白,请在"$(...)"周围添加双引号。甚至不要考虑用背引号来尝试。