Что означает параметр -rd в команде cp?

6

Я нашел ссылку, используя следующую команду

cp -rd  *  /folder_1/

, а другой -

cp -dr * /folder_2/

Не могли бы вы сообщить, каковы эти опции «rd» или «dr»?

    
задан moibrahim 12.07.2016 в 11:09
источник

2 ответа

17

Заказ не имеет значения - вы можете указать опции в любом порядке

Эта комбинация будет рекурсивно копировать каталоги (включая все содержимое) и скопировать символические ссылки в виде символических ссылок вместо копирования файлов, на которые они указывают.

-d требуется только при использовании -r : он используется для переопределения поведения по умолчанию, которое не должно следовать символическим ссылкам при копировании рекурсивно

из info cp

  

'- r' '--recursive'        Скопируйте каталоги рекурсивно. По умолчанию не следуйте символическим        ссылки в источнике, если они не используются вместе с '-link' ('-l')        вариант; см. '--archive' ('-a'), '-d', '--dereference' ('-L'),        '--no-dereference' ('-P') и '-H'.

     

«- d»        Скопируйте символические ссылки как символические ссылки, а не копируйте файлы        что они указывают на и сохраняют жесткие связи между исходными файлами в        копии. Эквивалент '--no-dereference --preserve = links'.

    
ответ дан Zanna 12.07.2016 в 11:16
10

Во многих утилит командной строки однобуквенные опции могут быть записаны вместе. В вашем случае более длинная форма будет

cp -r -d  *  /folder_1/

, который можно сократить до

cp -rd  *  /folder_1/

Другая версия

cp -dr  *  /folder_1/

совпадает с

cp -d -r  *  /folder_1/
    
ответ дан Mark H 12.07.2016 в 11:23