У меня есть следующий сценарий Баш:Копирование найден каталог на пути построен с использованием указанного аргумента и нашел каталог
cd root_folder && find folder1 folder2 -name "doc" -exec cp -r --parents {} $1{} \;
Идея заключается в том, чтобы найти все папки с названием doc
под folder1
и folder2
и копируя структуру, начиная с root_folder
в путь, который указан аргументом пользователя (вместе со всем содержимым doc
).
Так, например
root_folder/folder1/other_folder/doc
становится:
$1/folder1/other_folder/doc
Этот скрипт работает до тех пор, как я не пользователь указать папку для копирования в, то есть, если я не имеют $1
. Однако, когда у меня есть, я получаю ошибку:
cp: with --parents, the destination must be a directory
Try `cp --help' for more information.
это несмотря на то, что 1) я уверен, что указанная папка заранее существует, и 2) Если я вывожу полный путь будет скопирован в, он выглядит точно так, как должен, то есть $1/folder1/other_folder/doc
.
Я также попытался добавить /
после $1
сделать $1/{}
, но это дает прямой слэш слишком много, что делает путь содержит //
, который, очевидно, не так.
Что мне здесь не хватает?