Я реализую схему резервного копирования, используя rsync и жесткие ссылки. Я знаю, что могу использовать link-dest с rsync для создания жестких ссылок, но я видел упоминание об использовании "cp -l" до того, как "link-dest" был реализован в rsync. Другой известный мне метод жестких ссылок - «Ин».
Поэтому из любопытства мой вопрос: есть ли разница в создании жестких ссылок с использованием "cp -l" по сравнению с использованием "ln"?
cp: illegal option -- l
Вы уверены, что у cp есть опция l?Ответы:
Результаты обоих должны быть одинаковыми в том, что создается жесткая ссылка на исходный файл.
Разница заключается в предполагаемом использовании и, следовательно, в параметрах, доступных для каждой команды. Например,
cp
может использовать рекурсию, тогда какln
не может:создаст жесткие ссылки
<target>
на все файлы в<src>
. (это создает новые каталоги; не ссылки). В результате структура дерева каталогов<target>
будет выглядеть так же, как и в<src>
. Он будет отличаться от того,cp -r <src> <target>
что при использовании последних будут копироваться все файлы и папки, и каждый получит новые,inode
тогда как первый просто использует жесткие ссылки на файлы и, следовательно, просто увеличивает ихLinks
количество.При использовании для копирования одного файла, как в вашем примере, результаты будут идентичны.
источник
link использует наименьшее количество системных вызовов, затем ln и, наконец, cp :
источник