Создание Symlink с близнецов, в местах удаления дубликатов
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3  Next  :| |:
Total Commander -> Автоматизация Total Commander

#16:  Author: ЧиполлиноLocation: Орёл PostPosted: Thu Mar 14, 2019 23:20
    —
одинаковые
Flasher wrote:
связанные одним физическим объектом в томе
этот объект -оставленный живым близнец из группы?
Мне не нужен только ХЕШ. МНЕ НУЖНО ИМЯ + ХЕШ. Может оказаться так, что по ХЕШ совпадут разноименные файлы. Групп с одноименными близнецами может оказаться несколько. И ХЕШ у файлов разных групп, будет разный. А имя одно НЕ пойдет этот вариант.
А вот если ИМЯ+ХЕШ -пойдет.

#17:  Author: FlasherLocation: Москва PostPosted: Thu Mar 14, 2019 23:26
    —
Тогда как понимать это:
Чиполлино wrote:
Ей нужно точное имя.Она не подхватит файл, на который был симлинк, если файл имеет другое имя.

Чиполлино wrote:
этот объект -оставленный живым близнец из группы?
Живой остаётся физическая запись на носителе, никаких близнецов нет, есть путевые указания на запись.

#18:  Author: ЧиполлиноLocation: Орёл PostPosted: Thu Mar 14, 2019 23:40
    —
Flasher wrote:
огда как понимать это:

Должны быть созданы линки на удаленных близнецов, + оставлен один физический объект с точно таким же именем + ХЕШ, и так для каждой группы файлов, одинаковых по ИМЕНИ+ХЕШ

#19:  Author: FlasherLocation: Москва PostPosted: Thu Mar 14, 2019 23:43
    —
Чиполлино wrote:
с точно таким же именем + ХЕШ
К имени хэш приписать ещё надо? Это зачем?

#20:  Author: ЧиполлиноLocation: Орёл PostPosted: Thu Mar 14, 2019 23:59
    —
Flasher wrote:
К имени хэш приписать ещё надо?

Файлы Должны совпадать по имени + ХЕШ

Добавлено спустя 2 минуты:

Я делал бы так.
1. Поиск дубликатов по имени+размер+содержимое
2. Файлы на панель.
3. Выделить группы, оставив один файл не выделенным.
4. Инвертировать выделение.
5. Запомнить источник ссылки
И вот тут засада. Как поместить линки вместо не выделенных файлов, да еще и чтоб они оказался на местах одногруппников-близнецов, заменив собой их, я не знаю.
ВОТ ЧТО МНЕ НАДО.

А ваше предложение я бы подкоректировал и выполнил так
1. Поиск дубликатов по имени+размер+содержимое
2. Файлы на панель.
3. Выделить группы, оставив один файл не выделенным.
Заменить выделенные файлы хардлинками. Вот так бы пошло.

#21:  Author: FlasherLocation: Москва PostPosted: Fri Mar 15, 2019 10:11
    —
Чиполлино wrote:
А ваше предложение я бы подкоректировал и выполнил так
Разница с моим вариантом будет только в ухудшенной экономии, а по существу останутся те же файлы, только для разноимённых дубликатов не будет жёстких связей. Т.е. никакого преимущества в запрашиваемом нет.

#22:  Author: ЧиполлиноLocation: Орёл PostPosted: Fri Mar 15, 2019 23:42
    —
Flasher wrote:
Разница с моим вариантом будет только в ухудшенной экономии

Я писал о втором этапе, не поддающемуся автоматизации. Это борьба с дубликатами по имени, без размера и без ХЕШ. На этом этапе нужны "живые" файлы, а не ссылки. Ваш способ хорош, но при определенных обстоятельствах, не зависимых от нас (зависимых от степени дури производителей материала, с которым придется работать) может затронуть и просто одноименные файлы, найдя для них близнеца по ХЕШ. И ваш метод не оставляет живым хотя бы одного близнеца из группы, как я понял.
Flasher -Вы гений но не Бог. И наверняка ТС тоже е все может. Просто научите меня, как это сделать в ручную. Пусть в несколько этапов. С копированием путей в текстовый файл. Изменением свойства линков. Или чем то подобным. Я не знаю, вы ж намного опытнее.

#23:  Author: FlasherLocation: Москва PostPosted: Sat Mar 16, 2019 02:18
    —
Чиполлино wrote:
Я писал о втором этапе, не поддающемуся автоматизации.
От меня разве поступали предложения без автоматизации?
Чиполлино wrote:
На этом этапе нужны "живые" файлы, а не ссылки.
Я уже в который раз объясняю, что дублирующие жёсткие ссылки — это указатели на один и тот же файл. Сколько можно? Для системы (да и для пользователя) что исходный указатель, что иной — без разницы. Ну, почитайте справку, ей-богу...
Чиполлино wrote:
И ваш метод не оставляет живым хотя бы одного близнеца из группы, как я понял.
Если вообще были попытки хоть что-то понять. См. выше.

Я уже говорил вам в другой теме о неприемлимости высокопарных эпитетов в мой адрес. Учить что-то делать вручную тут я не собирался. Я могу помочь с реальным средством, когда вы наконец разберётесь в сути обсуждаемых вещей и на базе понятого окончательно сформулируете причины не/допустимости тех или иных предложений.

#24:  Author: ЧиполлиноLocation: Орёл PostPosted: Sat Mar 16, 2019 07:40
    —
Flasher wrote:
дублирующие жёсткие ссылки — это указатели на один и тот же файл

Господи да Вы вообще меня не понимаете видимо.
Нашел ТС поиском 20 файлов с именем "Х", и при этом одинаковых по хеш.
ТС должен удалить все файлы "Х", кроме одного, а в местах удаления оставть, либо симлинки с этого живого "Х",
либо хардлинки. Но не нужно, чтобы ТС искал одинаковые с "Х" файлы, по ХЕШ, но имеющие
другие имена. Не надо такие файлы принимать за близнецов "Х". Если у таких файлов есть дубликаты по
имени + Хеш, ТС должен создать для них свои одноименные ссылки, оставив один живым, так же как и в случае с "Х".
Если таковой порядок действий не возможен, а из Вами-предложенного я понял, что это так, закроем тему.
Я ж писал, что на определенном этапе я удалю все хардлинки или симлинки. И как прога найдет недостающие?
Ну представьте ситуацию, ТС находит файл "А"(один с таким именем), одинаковый по ХЕШ с "Х".
В вашем случае на него создается хардлинк с именем "А" - Правильно? Даю команду Семплеру на просчет файлов. Он увидит линк "А" .
Но после этого я должен удалить все символьные ссылки. Что дальше?
Где я найду ему "А"? Сеплер не полезет за близнецом "Х", он потребует именно имя "А". И даже в моем варианте, он не воспримет симлинк на "Х" как ниточку, ведущую к файлу. При удалении симлинка, он не полезет за оригиналом. Ему по боку. Ему дай файл "Х" в месте симлинка. Мне его в ручную указывать придется. Вы мыслите как должно , а прога мыслит через жопу - простите. Теперь понятно?

#25:  Author: FlasherLocation: Москва PostPosted: Sat Mar 16, 2019 10:58
    —
Чиполлино wrote:
Господи да Вы вообще меня не понимаете видимо.
Всё, что я сейчас понял, это то, что вы без умолку крутите пластинку по 5-му кругу, так и не проявив ни малейшего интереса к латанию образовательных дыр, опять ошибочно примеряя ложные словечки вроде "живой" только в отношении исходной жёсткой ссылки, хотя я вполне ясно писал:
Flasher wrote:
Исходный файл в NTFS — по сути тот же хардлинк.

Flasher wrote:
Они ищут дубликаты по содержимому и заменяют их на хардлинки (без смены имён), связанные одним физическим объектом в томе.
Не путём в метаданных, а физическим объектом.
Flasher wrote:
Живой остаётся физическая запись на носителе, никаких близнецов нет, есть путевые указания на запись.
Исходный путь к файлу — это не близнец, это мета-запись на тот же физический объект, что и у других жёстких ссылок на него.
Flasher wrote:
дублирующие жёсткие ссылки — это указатели на один и тот же файл.
Исходный файл — эта та же дублирующая жёсткая ссылка, в очередной раз повторяю.
Чиполлино wrote:
Если таковой порядок действий не возможен, а из Вами-предложенного я понял, что это так, закроем тему.
Он не невозможен, он в рамках явления хардлинков избыточен. Либо нужно возвращаться к сим..
И уберите "ТС" из нашего диалога. Он сейчас отношения к делу не имеет.


Чиполлино wrote:
Но после этого я должен удалить все символьные ссылки.
Зачем? Цель была в замене, а не удалении. Иначе удалять можно сразу и без вашего участия.
Чиполлино wrote:
Сеплер не полезет за близнецом "Х", он потребует именно имя "А".
Если он ориентируется по пути, то опять же зачем его было удалять? А если нет, то отличить второй хардлинк от исходного он не сможет.
Чиполлино wrote:
И даже в моем варианте, он не воспримет симлинк на "Х" как ниточку, ведущую к файлу. ... Ему дай файл "Х" в месте симлинка.
А мы не обсуждаем сейчас симлинки. Неужели за всё время не было возможности провести эксперимент с парой жёстких ссылок?
Чиполлино wrote:
При удалении симлинка, он не полезет за оригиналом.
Так и не удаляйте.
Чиполлино wrote:
Вы мыслите как должно , а прога мыслит через жопу - простите. Теперь понятно?
Нет. Я не вижу тут никакой ж.., если по пути нет заданного в настройках объекта, то любой программе просто искать будет нечего.

#26:  Author: ЧиполлиноLocation: Орёл PostPosted: Sat Mar 16, 2019 23:04
    —
Flasher - вы критически относитесь к похвалам в Ваш адрес, может Вы и правы - скромность красит человека.
Однако прошу оставить принятие решения нам-смертным. Это идет из души, если хотите.
"Спасибо" - не пахнет, а на прямой контакт Вы выходите, как я понимаю, только с узким кругом лиц. Но я не об этом.
Обсуждение этой проблемы натолкнуло меня но иной путь решения. Хоть и не глобальное - но решение.
Я сам решаю этот вопрос штатными средствами ТС.
Но есть люди, которые в ТС совсем не шарят.
Для них я прошу Вас сделать автоматизацию, с названием - "КНОПКА ДЛЯ ДУРАКОВ". (пользователь выделяет каталог, и жмет на кнопку)
1.Кнопка запускает поиск в выделенном каталоге, и дальше так:
A) в каталоге нет одноименных файлов - СТОП!!! (прекращение работы кнопки)
B) в каталоге есть одноименные файлы, разные по ХЕШ - СТОП!!
СТОП!!! - желательно с каким либо извещением - уведомлением
Если условия A и B не выполнены переходим к пункту 2.
2. Поиск находит все одинаковые файлы по ИМЯ+РАЗМЕР+СОДЕРЖИМОЕ,
выделяются группы файлов, оставив один файл в каждой группе не выделенным, удаляются выделенные файлы.
и ВСЁ!!!
А на случай, когда одноименные файлы разные по ХЕШ присутствуют, я попробую продумать алгоритм действий, хотя это будет гораздо сложнее.
Но выполнение обеих задач одним заданием не возможно. Я причину писал.

#27:  Author: ЧиполлиноLocation: Орёл PostPosted: Sat Jul 18, 2020 04:31
    —
Уважаемый Flasher. приветствую.
Возникла ситуация, при которой мне нужен именно Ваш вариант.
"Создание hard link с близнецов, в местах удаления дубликатов" с одним условием:
- hard link должен иметь имя удалённого файла.
Прошу немного пояснений. hard link действует в пределах одного раздела, как написано в описании.
Я приведу пример.
Имеется папка HOME, расположенная на диске D. В этой папке находятся 2 подкаталога с названием 1 и 2.
В подкаталоге 1 лежит файл Х, в подкаталоге 2 - файл Y. Файлы Х и Y имеют одинаковое содержимое.
Создаем hard link с файла Х в папку 2. (имя линка должно быть Y. при этом файл Y удаляется)
А теперь вопрос.
- Если я изменю местоположение папки HOME, перенесу ее на другой диск. то связь будет потеряна?
- Есть ли возможность ограничить связь между линком и близнецом только относительно папки HOME, игнорируя абсолютные пути ?
Если это не возможно, все равно ваш вариант подходит. На сайте есть раздел. где описан процесс группового изменения свойства линков (ярлыков)

#28:  Author: FlasherLocation: Москва PostPosted: Sat Jul 18, 2020 08:13
    —
Чиполлино wrote:
Если это не возможно, все равно ваш вариант подходит.
Салют. Тогда вот пример рекурсии с fdf/x64 для активной папки при пустом пути запуска: %СOMMANDER_PATH%\Utils\fdf.exe -hlqr

#29:  Author: ЧиполлиноLocation: Орёл PostPosted: Sat Jul 18, 2020 21:11
    —
Flasher wrote:
пример рекурсии

Подскажите дураку. Laughing Laughing Laughing чё мне с этим делать? И что должно быть в TC установлено для работы этого

#30:  Author: FlasherLocation: Москва PostPosted: Sat Jul 18, 2020 21:48
    —
Чиполлино
Да что угодно в рамках ТС: кнопку, юзеркоманду+хоткей, избранный каталог. И что тут, собственно, может быть "установлено" кроме копирования утилиты в соотв. папку по заданному пути?



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3  Next  :| |:
Page 2 of 3

Powered by phpBB © 2001, 2005 phpBB Group