Создание Symlink с близнецов, в местах удаления дубликатов

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Чиполлино
Сообщения: 62
Зарегистрирован: Пт дек 22, 2017 23:44
Откуда: Орёл

Сообщение Чиполлино »

одинаковые
Flasher писал(а):связанные одним физическим объектом в томе
этот объект -оставленный живым близнец из группы?
Мне не нужен только ХЕШ. МНЕ НУЖНО ИМЯ + ХЕШ. Может оказаться так, что по ХЕШ совпадут разноименные файлы. Групп с одноименными близнецами может оказаться несколько. И ХЕШ у файлов разных групп, будет разный. А имя одно НЕ пойдет этот вариант.
А вот если ИМЯ+ХЕШ -пойдет.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Тогда как понимать это:
Чиполлино писал(а):Ей нужно точное имя.Она не подхватит файл, на который был симлинк, если файл имеет другое имя.
Чиполлино писал(а):этот объект -оставленный живым близнец из группы?
Живой остаётся физическая запись на носителе, никаких близнецов нет, есть путевые указания на запись.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Чиполлино
Сообщения: 62
Зарегистрирован: Пт дек 22, 2017 23:44
Откуда: Орёл

Сообщение Чиполлино »

Flasher писал(а):огда как понимать это:
Должны быть созданы линки на удаленных близнецов, + оставлен один физический объект с точно таким же именем + ХЕШ, и так для каждой группы файлов, одинаковых по ИМЕНИ+ХЕШ
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Чиполлино писал(а):с точно таким же именем + ХЕШ
К имени хэш приписать ещё надо? Это зачем?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Чиполлино
Сообщения: 62
Зарегистрирован: Пт дек 22, 2017 23:44
Откуда: Орёл

Сообщение Чиполлино »

Flasher писал(а):К имени хэш приписать ещё надо?
Файлы Должны совпадать по имени + ХЕШ

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

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

А ваше предложение я бы подкоректировал и выполнил так
1. Поиск дубликатов по имени+размер+содержимое
2. Файлы на панель.
3. Выделить группы, оставив один файл не выделенным.
Заменить выделенные файлы хардлинками. Вот так бы пошло.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Чиполлино писал(а):А ваше предложение я бы подкоректировал и выполнил так
Разница с моим вариантом будет только в ухудшенной экономии, а по существу останутся те же файлы, только для разноимённых дубликатов не будет жёстких связей. Т.е. никакого преимущества в запрашиваемом нет.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Чиполлино
Сообщения: 62
Зарегистрирован: Пт дек 22, 2017 23:44
Откуда: Орёл

Сообщение Чиполлино »

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

Сообщение Flasher »

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

Я уже говорил вам в другой теме о неприемлимости высокопарных эпитетов в мой адрес. Учить что-то делать вручную тут я не собирался. Я могу помочь с реальным средством, когда вы наконец разберётесь в сути обсуждаемых вещей и на базе понятого окончательно сформулируете причины не/допустимости тех или иных предложений.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Чиполлино
Сообщения: 62
Зарегистрирован: Пт дек 22, 2017 23:44
Откуда: Орёл

Сообщение Чиполлино »

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

Сообщение Flasher »

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

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

Сообщение Чиполлино »

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

Сообщение Чиполлино »

Уважаемый Flasher. приветствую.
Возникла ситуация, при которой мне нужен именно Ваш вариант.
"Создание hard link с близнецов, в местах удаления дубликатов" с одним условием:
- hard link должен иметь имя удалённого файла.
Прошу немного пояснений. hard link действует в пределах одного раздела, как написано в описании.
Я приведу пример.
Имеется папка HOME, расположенная на диске D. В этой папке находятся 2 подкаталога с названием 1 и 2.
В подкаталоге 1 лежит файл Х, в подкаталоге 2 - файл Y. Файлы Х и Y имеют одинаковое содержимое.
Создаем hard link с файла Х в папку 2. (имя линка должно быть Y. при этом файл Y удаляется)
А теперь вопрос.
- Если я изменю местоположение папки HOME, перенесу ее на другой диск. то связь будет потеряна?
- Есть ли возможность ограничить связь между линком и близнецом только относительно папки HOME, игнорируя абсолютные пути ?
Если это не возможно, все равно ваш вариант подходит. На сайте есть раздел. где описан процесс группового изменения свойства линков (ярлыков)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Чиполлино писал(а):Если это не возможно, все равно ваш вариант подходит.
Салют. Тогда вот пример рекурсии с fdf/x64 для активной папки при пустом пути запуска: %СOMMANDER_PATH%\Utils\fdf.exe -hlqr
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Чиполлино
Сообщения: 62
Зарегистрирован: Пт дек 22, 2017 23:44
Откуда: Орёл

Сообщение Чиполлино »

Flasher писал(а):пример рекурсии
Подскажите дураку. :lol: :lol: :lol: чё мне с этим делать? И что должно быть в TC установлено для работы этого
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Чиполлино
Да что угодно в рамках ТС: кнопку, юзеркоманду+хоткей, избранный каталог. И что тут, собственно, может быть "установлено" кроме копирования утилиты в соотв. папку по заданному пути?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить