При копировании файлов и папок с CP с shopt extglob - ошибка не является каталогом

Я пытаюсь скопировать файлы с каталога в то время как, исключая папку и файл. Моя проблема состоит в том что получение ошибки с shopt extglob активирована. Вот мой код:

DEPLOY_SIMULATION_ENV="/home/user/Desktop/fancyproject/"
shopt -s extglob
cp -r ./!(nbproject|zexp.html) "$DEPLOY_SIMULATION_ENV"
shopt -u extglob

Это дает мне

‘/home/user/Desktop/myfancyproject/’ is not a directory

Конечно, я хочу, чтобы CP создало каталог myfancyproject автоматически. У меня есть обходное решение с mkdir $DEPLOY_SIMULATION_ENV сначала, но существует ли способ сделать это с CP? Это ведет себя странно, когда extglob активен.

1
задан 22 September 2014 в 15:05

1 ответ

Вы уверены, что проблемой не является использование "пользователя" здесь...

DEPLOY_SIMULATION_ENV="/home/user/Desktop/fancyproject/"

, Если имя учетной записи не является "пользователем", оно перестанет работать с той же ошибкой, как Вы показываете. Вам нужно $USER, если Вы хотите фактического пользователя.

<час>

там способ сделать это с cp

Да..., но не, как Вы ожидаете его.

- родители

Форма название каждого целевого файла путем добавления к целевому каталогу наклонной черты и указанного имени исходного файла. Последним аргументом, данным CP, должно быть название существующего каталога. Например, команда:

      cp --parents dir1/dir2/file1 dir3

создаст /dir1/dir2 внутренний dir3 (должен уже существовать), и копия file1 в него.

1
ответ дан 11 November 2019 в 12:35

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

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