Using variable with cp in bash

bash, cp, linux, variables

Solution

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.

Problem

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" ```

Original source

Related problems