Почему cp не обнаруживает «\» (обратная косая черта + пробел)?

Я пытался написать сценарий оболочки для копирования файлов. Вот что я сделал.

 workingDirectory=$(pwd | sed "s/ /\\ /g")

Теперь echo $workingDirectory показывает /home/user/Documents/Learning and Development/.

Но я знаю, что для работы команды cp мне нужно заменить пробелы на \ (обратная косая черта + пробел). Поэтому я немного изменил команду sed, как

workingDirectory=$(pwd | sed "s/ /\\\ /g")

. Таким образом, echo $workingDirectory показывает /home/user/Documents/Learning\ and\ Development/.

Но когда пытаешься использовать команду cp as,

cp $workingDirectory/jad/jad /usr/bin/

, я получаю ошибки,

cp: cannot stat ‘/home/user/Documents/Learning\\’: No such file or directory
cp: cannot stat ‘and\\’: No such file or directory
cp: cannot stat ‘Development/jad/jad’: No such file or directory

. Какая может быть причина ? Как это разрешить?

EDIT

Если я использую первую команду sed, то ошибки будут

cp: cannot stat ‘/home/user/Documents/Learning’: No such file or directory
cp: cannot stat ‘and’: No such file or directory
cp: cannot stat ‘Development/jad/jad’: No such file or directory
1
задан 24 March 2016 в 13:45

0 ответов

Другие вопросы по тегам:

Похожие вопросы: