13

The file returned will have spaces in the file name so I run the file name through sed to append quotes at the beginning and end. However, when I use $CF with cp it fails. If I manually echo $CF and use the resulting file in place of $CF it works just fine. What's the problem?

CF=`ls -tr /mypath/CHS1*.xlsx | tail -1 | sed -e 's/^/"/g' -e 's/$/"/g'`
cp $CF "/mydest/myfile.xlsx"
Todd
  • 652
  • 2
  • 19
  • 37

1 Answers1

17

You don't need to add the quotes like that (in fact, it probably won't work). Instead, just use them in the cp line:

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

I changed it from using backticks to the newer (and preferred) $() syntax.

Community
  • 1
  • 1
Carl Norum
  • 219,201
  • 40
  • 422
  • 469