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

Хотите говорить о Far и не знаете, куда обратиться?
Post Reply
akindhacker
Posts: 50
Joined: Wed 19 Apr, 2006 00:07

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

Post by akindhacker » Mon 29 Aug, 2016 13:24

Есть файл1 и файл2, которые являются хардлинками одного файла. При групповом копировании Фар создает две отдельных копии. Можно ли сделать чтоб он восстанавливал хардлинки?

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

2useven10
Posts: 2983
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 80 times

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

Post by 2useven10 » Mon 29 Aug, 2016 13:52

На первый взгляд вполне можно сделать.

akindhacker
Posts: 50
Joined: Wed 19 Apr, 2006 00:07

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

Post by akindhacker » Mon 29 Aug, 2016 14:37

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

2useven10
Posts: 2983
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 80 times

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

Post by 2useven10 » Mon 29 Aug, 2016 14:40

При копировании на тот же диск все файлы можно сделать хардлинками, если файловая система позволяет.
Last edited by 2useven10 on Mon 29 Aug, 2016 14:42, edited 1 time in total.

User avatar
John Doe
Бюрократ
Posts: 11127
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 72 times

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

Post by John Doe » Mon 29 Aug, 2016 15:03

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

Кроме указанных там ещё tar и cp (последний лично проверил только что).
Last edited by John Doe on Mon 29 Aug, 2016 15:05, edited 1 time in total.

akindhacker
Posts: 50
Joined: Wed 19 Apr, 2006 00:07

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

Post by akindhacker » Mon 29 Aug, 2016 15:22

John Doe wrote: гугл точно кое-что знает
Спасибо, вы получше строку для поиска придумали, чем я.
Last edited by akindhacker on Mon 29 Aug, 2016 15:26, edited 1 time in total.

User avatar
DrKnS
Posts: 4581
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 115 times
Contact:

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

Post by DrKnS » Mon 29 Aug, 2016 15:30

Теоретически можно всё.
Практически - в copy.cpp уже и так чёрт ногу сломит. Я бы не усугублял.

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

akindhacker
Posts: 50
Joined: Wed 19 Apr, 2006 00:07

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

Post by akindhacker » Mon 29 Aug, 2016 21:08

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

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

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

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

2useven10
Posts: 2983
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 80 times

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

Post by 2useven10 » Tue 30 Aug, 2016 00:29

akindhacker wrote: Спасибо в любом случяе.
Виш на мантис никто не запрещает, особенно с хорошим патчем.
Но, как справедливо отметил DrKnS, хороший патч для copy.cpp - это непросто.

akindhacker
Posts: 50
Joined: Wed 19 Apr, 2006 00:07

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

Post by akindhacker » Fri 16 Sep, 2016 13:45

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

Post Reply

Return to “Обсуждение Far Manager”