返されるファイルのファイル名にはスペースが含まれているため、sed を介してファイル名を実行し、先頭と末尾に引用符を追加します。ただし、cp で $CF を使用すると失敗します。手動で $CF をエコーし、結果のファイルを $CF の代わりに使用すると、問題なく動作します。どうしたの?
CF=`ls -tr /mypath/CHS1*.xlsx | tail -1 | sed -e 's/^/"/g' -e 's/$/"/g'`
cp $CF "/mydest/myfile.xlsx"
そのような引用符を追加する必要はありません(実際、おそらく機能しません)。cp
代わりに、次の行でそれらを使用してください。
CF=$(ls -tr /mypath/CHS1*.xlsx | tail -1)
cp "$CF" "/mydest/myfile.xlsx"
バックティックの使用から新しい(そして優先される)$()
構文に変更しました。