Почему CP не копирует указанную папку

скажем, то, что у меня есть следующая файловая структура:

~/DIR1
-fileA
-DIR2
--fileB

Затем будучи в ~, я запускаю этот скрипт:

cp DIR1 NEWDIR2

И просто ошибка происходит:

cp: omitting directory ‘DIR1’

Я понимаю, почему ничто от DIR1 не копируется (потому что я не использовал переключатель-r, который осуществит рекурсию), но я ожидал бы саму папку DIR1, скопированную в NEWDIR2 (так практически создание нового "NEWDIR2" в ~ или создание ~/NEWDIR2/DIR1).

Кто-то мог объяснить мне, почему мое ожидание неправильно?

1
задан 4 March 2015 в 12:31

3 ответа

От страницы информации о GNU для CP:

По умолчанию, 'CP' не копирует каталоги. Однако '-R', '-a' и '-r' опции заставляют 'CP' копировать рекурсивно путем убывания в исходные каталоги и копирования файлов в соответствующие целевые каталоги.

https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html#cp-invocation

3
ответ дан 10 November 2019 в 09:19

CP не может скопировать каталоги, если оно не используется с переключателями как-R,-r или-a.

Щелкают здесь для большего количества информации

0
ответ дан 10 November 2019 в 09:19
cp -r src dest #(OOPS!!)

Вышеупомянутое ведет себя по-другому, если dest существует или нет. это не является немым, если Вы думаете об этом.
, Если Вы хотите скопировать по одному dir в другого, используйте, просто копируют каждый dir и файл в исходном dir к dest.

cp -r src/* dest 

Вышеупомянутое делает то, что Вы хотите сделать (используйте-a по мере необходимости), но необходимо будет использовать "полуночного командующего" или GLOBIGNORE (слишком технический) для копирования скрытых файлов также. (потому что * игнорирует скрытые файлы)

0
ответ дан 10 November 2019 в 09:19

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

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