12

返回的文件将在文件名中包含空格,因此我通过 sed 运行文件名以在开头和结尾附加引号。但是,当我将 $CF 与 cp 一起使用时,它会失败。如果我手动回显 $CF 并使用生成的文件代替 $CF 它工作得很好。有什么问题?

CF=`ls -tr /mypath/CHS1*.xlsx | tail -1 | sed -e 's/^/"/g' -e 's/$/"/g'`
cp $CF "/mydest/myfile.xlsx"
4

1 回答 1

16

您不需要像这样添加引号(实际上,它可能不起作用)。相反,只需cp在行中使用它们:

CF=$(ls -tr /mypath/CHS1*.xlsx | tail -1)
cp "$CF" "/mydest/myfile.xlsx"

我将它从使用反引号更改为更新的(和首选的)$()语法。

于 2013-01-29T18:24:48.397 回答