Page 1 of 1

Восстановление хардлинков при копировании возможно?

Posted: Mon 29 Aug, 2016 13:24
by akindhacker
Есть файл1 и файл2, которые являются хардлинками одного файла. При групповом копировании Фар создает две отдельных копии. Можно ли сделать чтоб он восстанавливал хардлинки?

Зачем нужно? Для копирования больших обемов файлов многие из которых являются хардлинками. Например, моя 1 ТБ база файлов при копировании Фаром без восстановления линков превращается почти в 2 ТБ. Спасибо.

Восстановление хардлинков при копировании возможно?

Posted: Mon 29 Aug, 2016 13:52
by 2useven10
На первый взгляд вполне можно сделать.

Восстановление хардлинков при копировании возможно?

Posted: Mon 29 Aug, 2016 14:37
by akindhacker
2useven10 wrote:На первый взгляд вполне можно сделать.
Не должно быть тяжело, насколько понимаю. Но из трех копировщиков в Фаре ни один это не делает. Хотя симлинки на директории они восстанавливать могут. Так же не нашёл других существующих утилит для такого копирования. Может кто знает?
Наверно единственное, что не очевидно для такой фичи это надо ли создавать хардлинк показывающий на файл являющимся источником копирования, или создавать новый, а потом на него указывать новые хардлинки. При копировании на другой диск эта неоднозначность не возникает. А при копировании в пределах одной файловой системы, наверно можно использовать пользовательскую опцию.

Восстановление хардлинков при копировании возможно?

Posted: Mon 29 Aug, 2016 14:40
by 2useven10
При копировании на тот же диск все файлы можно сделать хардлинками, если файловая система позволяет.

Восстановление хардлинков при копировании возможно?

Posted: Mon 29 Aug, 2016 15:03
by John Doe
akindhacker wrote: Так же не нашёл других существующих утилит для такого копирования. Может кто знает?
Мне попадались, но не вспомню.
А гугл точно кое-что знает, вот первый же результат http://superuser.com/questions/997190/c ... hard-links

Кроме указанных там ещё tar и cp (последний лично проверил только что).

Восстановление хардлинков при копировании возможно?

Posted: Mon 29 Aug, 2016 15:22
by akindhacker
John Doe wrote: гугл точно кое-что знает
Спасибо, вы получше строку для поиска придумали, чем я.

Восстановление хардлинков при копировании возможно?

Posted: Mon 29 Aug, 2016 15:30
by DrKnS
Теоретически можно всё.
Практически - в copy.cpp уже и так чёрт ногу сломит. Я бы не усугублял.

Если у вас есть такие нетрадиционные файловые структуры и вам надо их куда-то копировать - храните их в VHD и копируйте сам контейнер, это дёшево, надёжно и практично.

Восстановление хардлинков при копировании возможно?

Posted: Mon 29 Aug, 2016 21:08
by akindhacker
DrKnS wrote: храните их в VHD и копируйте сам контейнер, это дёшево, надёжно и практично.
Не практично. Создавать один контейнер размером на весь диск (у меня 1ТБ)? Потом такой контейнер и копировать рискованно.

Да и юзал я такое решение с контейнером на 50 ГБ уже. Сразу вылезла проблема работы файлового кеша винды - она не может при необходимости выгружать части файла из кеша памяти (выгружаются только файлы целиком). Вместо этого начинает свопить до бесконечности пока компьютер вообще перерастает откликаться (Вин 7).

Ну да ладно. Если тяжело сделать, то для таких редких юзеров как я, и сторонняя утилита подойдёт. Тем более, будучи программистом, я и сам бы мог разобраться с copy.cpp.

Спасибо в любом случяе.

Восстановление хардлинков при копировании возможно?

Posted: Tue 30 Aug, 2016 00:29
by 2useven10
akindhacker wrote: Спасибо в любом случяе.
Виш на мантис никто не запрещает, особенно с хорошим патчем.
Но, как справедливо отметил DrKnS, хороший патч для copy.cpp - это непросто.

Восстановление хардлинков при копировании возможно?

Posted: Fri 16 Sep, 2016 13:45
by akindhacker
Посмотрел copy.cpp. За свою карьеру программиста в 15 лет, видел очень много плохого кода. Но copy.cpp выглядит как код написанный ответственными людьми, просто не причесан. С первого взгляда, не уверен что и причесыванием можно сдеалть намного лучше. А на причесывание всегда уходит большая часть времени. Мне бы тяжело б было доделать так как надо много знать про работу Фара. Поэтому просто намакросил (через ln), чтоб решить мою конкретную проблему.

Восстановление хардлинков при копировании возможно?

Posted: Sun 28 Jan, 2018 14:03
by akindhacker
Никто не хочет эту фичу добавить за 50$?