LINUX.ORG.RU

зачем cp -r?


0

0

Вот интересно для чего комманде cp указывать ключ -r при копировании директорий. mv, например, перемещает и файлы, и дирректории совершенно одинаково, а вот cp требуется отдельный ключ. В этом явно есть какой-то смысл. Но какой?

★★★★★

Ну представь себе папку. Не на компьютере а в столе, с бумажными документами. Переместить эту папку из одного ящика стола в другой ты можешь за одно действие, не открывая и не просматривая содержимое, так же как и отдельный документ. А скопировать?

=)

Deleted
()

> Вот интересно для чего комманде cp указывать ключ -r при копировании директорий.

Чтобы директория скопировалась вместе с содержимым рекурсивно.

> mv, например, перемещает и файлы, и дирректории совершенно одинаково, а вот cp требуется отдельный ключ. В этом явно есть какой-то смысл. Но какой?

Копировать это тебе не перемещать, ага.

melkor217 ★★★★★
()
Ответ на: комментарий от melkor217

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

x905 ★★★★★
()
Ответ на: комментарий от melkor217

> вместе с содержимым рекурсивно

наверно глупый вопрос. Но что здесь понимается под рекурсивностью?

ugoday ★★★★★
() автор топика
[ ~/test/ ]
% ls -go
total 0
drwxr-xr-x 2 1 2009-09-21 14:16 test1/
drwxr-xr-x 2 1 2009-09-21 14:16 test2/
-rw-r--r-- 1 0 2009-09-21 14:17 test3

[ ~/test/ ]
% cp *

Смысл ясен?

PS

% which cp
cp: aliased to nocorrect cp --verbose --recursive --preserve=all

kapsh
()
Ответ на: комментарий от kapsh

Поведение cp понятно, но вариант "скопировать все файлы, но не директории" мне кажется довольно вычурным и потому редкоиспользуемым. За годы работы в линухе мне так и не довелось им воспользоваться. А "cp -r" --- каждый день. Не было бы логичнее для редкоиспользуемого варианта сделать опцию, а "cp -r" --- вариантом по умолчанию?

ugoday ★★★★★
() автор топика
Ответ на: комментарий от ugoday

> Не было бы логичнее для редкоиспользуемого варианта сделать опцию, а "cp -r" --- вариантом по умолчанию?

Нет не логичнее. Поведение по умолчанию должно быть максимально безопасным. Если тебе нужно что-то другое - делай альясы.

kapsh
()
Ответ на: комментарий от kapsh

Отказывает воображение. В какой ситуации перемещение директорий опасно, а файлов --- нет?

ugoday ★★★★★
() автор топика
Ответ на: комментарий от ugoday

тем более непонятно если пишу: "cp some_dir to_some_dir" и отказывается копировать без -r
ведь тут и так ясно что хочу каталог скопировать рекурсивно

x905 ★★★★★
()
Ответ на: комментарий от ugoday

Команды coreutils изначально должны выполнять минимальную функцию. Что касается mv, то никакой рекурсии там и нет, т.к. перемещение == переименование.

GotF ★★★★★
()
Ответ на: комментарий от x905
alias cp='cp --recursive'

И всё будет чики-пуки ;)

GotF ★★★★★
()
Ответ на: комментарий от GotF

> Команды coreutils изначально должны выполнять минимальную функцию.

+256 Так сказать unixway, а на основе этих команд уже можно городить кому чего надо. Другое дело то что большинству это лень делать, просто охота одной большой чудесной кнопки "Сделать заипись!" (ну или скопировать директорию рекурсивно без опции r).

MaxPower ★★
()
Ответ на: комментарий от MaxPower

тогда объясните - какую минимальную и полезную работу делает команда "cp some_dir to_some_dir" (без -r и без алиасов)

x905 ★★★★★
()
Ответ на: комментарий от x905

Копирует каталог, конечно. Элемент структуры без её содержимого.

Подозреваю, что изначальные причины чисто исторические. В никсах проблема всяких "legacy" тоже есть.

Xenesz ★★★★
()
Ответ на: комментарий от x905

Сами ведь, надеюсь, знаете какую, или для Вас это минимально НЕ полезная работа. А вот почему по умолчанию не используется более необходимая функция, то повторюсь unix way, программа то GNUтая.

MaxPower ★★
()
Ответ на: комментарий от MaxPower

Именно это я имею в виду. Можно спорить, правильно ли программа делает то-то и то-то, но де-факто на этом её поведении уже многое завязано, а позиксы закрепили такое поведение де-юре.

Xenesz ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.