LINUX.ORG.RU

Уникально идентифицировать директории и файлы

 ,


0

1

Что нужно сделать, для того, чтобы у каждой директории и у каждого файла был свой уникальный идентификатор?

Директории перемещаются, переименовываются, а хотелось бы на них ссылаться, и при изменении имени директории не исправлять все ссылки.

Файлы бы хотелось идентифицировать по их контрольной сумме (подписи).

Вопрос: какую файловую систему использовать, и какими консольными командами приписывать уникальные идентификаторы директориям (и файлам).

★★★

Последнее исправление: Shushundr (всего исправлений: 1)

чтобы у каждой директории и у каждого файла был свой уникальный идентификатор

Это же полный путь, нет?

и при изменении имени директории не исправлять все ссылки

Странная хотелка, хочется подробностей для чего надо такое.

Google: hash based file system

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 1)
Ответ на: комментарий от vvn_black

хочется подробностей для чего надо такое.

Это написано прямо в следующем параграфе исходного сообщения.

Допустим, что надо ссылаться на директории. Я не могу в .pdf-документе написать её имя, потому что потом директорию переименуют и всё, все распечатки можно выбрасывать.

Shushundr ★★★
() автор топика

Идентификаторы у них есть в любой файловой системе - inode number. Только вот способа получить доступ к директории по её inode не предусмотрен. Для идентификации предусмотрено как раз имя, но ты его зачем-то меняешь.

исправлять все ссылки.

Тут надо уточнить, какого рода ссылки. И зачем переименовывать. Задача странная.

firkax ★★★★★
()
Ответ на: комментарий от Shushundr

потому что потом директорию переименуют и всё

Это и странно.

vvn_black ★★★★★
()
Ответ на: комментарий от Shushundr

Я не могу в .pdf-документе написать её имя, потому что потом директорию переименуют и всё, все распечатки можно выбрасывать.

Если бы не это уточнение, то можно было бы посоветовать смотреть в сторону реализаций «Semantic Desktop», но в данном случае вряд ли поможет.

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 1)

Можно наколхозить с IPFS, но лучше решать задачу уровнем выше, ибо перемещаться, переименовываться само ничего не должно.

FedyaPryanichkov ★★
()
Ответ на: комментарий от Shushundr

Я не могу в .pdf-документе написать её имя, потому что потом директорию переименуют и всё, все распечатки можно выбрасывать.

Вот пусть те люди, которые переименовывают эти директории и занимаются вопросом, как вставлять ссылки в pdf)

А так могу предложить использовать какую-то свою папку с симлинками на нужные документы.

goingUp ★★★★★
()
Ответ на: комментарий от goingUp

Вот пусть те люди, которые переименовывают эти директории и занимаются вопросом, как вставлять ссылки в pdf)

Это ты хакер-одиночка. А при работе в организации кто-то занимается одними делами (придумывает имена директориям, а потом понимает что накосячил, придумывает по-новой и переименовывает), а кто-то другой должен обеспечить, чтобы всё продолжало работать.

И вот мне не повезло. Я и есть «те люди, которые должны сделать, чтобы при переименовывании не ломалось».

Shushundr ★★★
() автор топика
Ответ на: комментарий от FedyaPryanichkov

Можно наколхозить с IPFS, но лучше решать задачу уровнем выше, ибо перемещаться, переименовываться само ничего не должно.

Хотел бы задать уточняющие вопросы:

  1. какие есть уровни вообще, какие из них выше (по какому принципу), к какому уровню относится IPFS, какой уровень выше на один.

  2. конечно переименовывается не само, это делают пользователи, им нужно, чтобы переименовывалось и перемещалось. Кто я, чтобы запрещать экспертам?

  3. что такого есть в IPFS, что относится к вопросу? Почему нельзя просто приписать расширенные атрибуты при помощи setfacl или чего-то такого.

Shushundr ★★★
() автор топика
Ответ на: комментарий от Shushundr

Я и есть «те люди, которые должны сделать, чтобы при переименовывании не ломалось».

Автоматизировать создание актуальных pdf, при изменении расположения файлов?

vvn_black ★★★★★
()
Ответ на: комментарий от Shushundr

Это ты хакер-одиночка.

Нет. Организация должна быть организована, а не ООО «Лебедь, рак и щука») Ну если не хочешь заниматься организовыванием, а накостылять техническое решение, то с симлинками по-моему неплохо, можно даже сделать их чекер, а потом фиксить самому, бегать, спрашивать что куда переместили, бгг.

goingUp ★★★★★
()
Ответ на: комментарий от Shushundr

Я не могу в .pdf-документе написать её имя, потому что потом директорию переименуют и всё, все распечатки можно выбрасывать.

Какой-то странный пдф документ со ссылкой область применения которой определенна конкретной файловой системой на конкретной машине. В данном случае проще распространять в таком случае документ и все на что он ссылается одним архивом, а не надеяться на файловую систему.

abcq ★★
()
Ответ на: комментарий от vvn_black

Не могу я автоматизировать создание физических копий, потому что эта операция имеет цену, которую я не могу заплатить.

Shushundr ★★★
() автор топика
Ответ на: комментарий от goingUp

фиксить самому, бегать, спрашивать что куда переместили, бгг.

Ну ты сам указал недостаток этого решения. Значит нужно другое решение, без такого недостатка.

Shushundr ★★★
() автор топика
Ответ на: комментарий от Shushundr

А если старый файл удалят, а потом зальют новую версию с чуть другим именем? Потому что эксперт не понимает, чем чревато. Тут ничто не поможет.

goingUp ★★★★★
()
Ответ на: комментарий от goingUp

Не надо на inode завязываться. Скопируют всю файловую систему с одного места на дургое и inode поменяются.

Завязываться надо на xattrs, там вон прямо в википедии написано, что оно для этого и предназначено.

Shushundr ★★★
() автор топика
Ответ на: комментарий от vvn_black

По всей видимости, Semantic Desktop - это какая-то концепция. По крайней мере, я не понял, какие пакеты (pacakges) мне нужно устанавливать.

Shushundr ★★★
() автор топика
Ответ на: комментарий от Shushundr

Да, концепция, интерфейсы строятся на метаданных.

Из реализаций, когда-то был nepomuk. Но не взлетел, на замену пришёл baloo. Что-то есть здесь https://en.wikipedia.org/wiki/Semantic_desktop#See_also

Но, кмк, в данном случае концепция не подойдёт.

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 1)

Файлы бы хотелось идентифицировать по их контрольной сумме (подписи).

Для уменьшения издержек сначала проверь срвпадение размеров файла.

Что нужно сделать, для того, чтобы у каждой директории и у каждого файла был свой уникальный идентификатор?

Время создания директории или файла?

torvn77 ★★★★★
()
Ответ на: комментарий от torvn77

Время создания директории или файла?

Ну вроде GUID-ы в себя время как-то включают.

Shushundr ★★★
() автор топика
Ответ на: комментарий от vvn_black

Почему же? Как концепция там всё как раз красиво, у каждого объекта свой URI. Ну вот сделать значение URI в виде GUID-а, а размещать в xattrs.

Shushundr ★★★
() автор топика
Ответ на: комментарий от Shushundr

Допустим, что надо ссылаться на директории. Я не могу в .pdf-документе написать её имя, потому что потом директорию переименуют и всё, все распечатки можно выбрасывать.

Может тебе стоит их научить использовать базы данных?

Ведь как ни крути, а ведь то, что будет решать эту проблему будет БД в той или иной форме.

torvn77 ★★★★★
()

в общем я вам вроде придумал как обстряпать это дело для фс с инодами, при подготовке пдф вы заблаговременно собираете иноды через ls -li для всех ваших файлов, потом пишите скипты на жс + нода (иначе до файловой системы видимо не добраться, как и до предлагаемого find) которые с помощью например «find -inum <inode_of_certain_file>» находят ваш файл и этим же скриптом делают его открытие, документация по работе с action type и работе с js в рамках pdf на сайте https://helpx.adobe.com/acrobat/using/applying-actions-scripts-pdfs.html где-то тут

abcq ★★
()
Последнее исправление: abcq (всего исправлений: 1)
Ответ на: комментарий от Shushundr

это вам и предстоит узнать прочитав документацию, гипотетически думаю это возможно. Хотя все равно весь этот финт ушами уже тянет на минисистему с дополнительной установкой ноды, надо ли оно вам когда можно просто подложить рядом файлы в архиве и ссылаться на текущую директорию.

abcq ★★
()
Ответ на: комментарий от Shushundr

файловая система тоже как бы немного база данных, только нереляционная.

Но в полноценной БД не будет проблем с переименованием файла или пути, просто сделаешь несколько переменных для хранения тёгов, эксперт будет просто добавлять теги к тем что уже существуют

Сделаешь основные, уточняющие и пользовательские, и вот над пользовательскими эксперту издеваться и дашь, а остальные в RO.

torvn77 ★★★★★
()
Последнее исправление: torvn77 (всего исправлений: 1)
Ответ на: комментарий от torvn77

В полноценной БД будет проблема с хранением контента файлов. Их нельзя будет из БД извлечь без специального приложения. А если можно, то пути до файлов будут рассинхронизовываться с путями в БД.

Shushundr ★★★
() автор топика
Ответ на: комментарий от Shushundr

Скопируют всю файловую систему с одного места на дургое и inode поменяются.

Завязываться надо на xattrs

Тут с большой вероятностью и xattrs потеряются, потому как если у тебя незнамо кто незнамо как обслуживает эту «фс» то ожидать, что копирование будет со всеми деталями - не стоит.

Автор, ещё раз тебе скажу - задача странная, и скорее всего ты вообще решаешь не то, что нужно. Ссылки на файлы из pdf, ещё и непонятно по какому принципу (не по имени) - это какая-то ерунда. Кто эти pdf-ы потом читает и зачем? Как он ссылки открывает - копирует текст из документа, вставляет в адресную строку? Или может туда можно вписать текстовые инструкции по поиску файла? Звучит всё это нелепо. Опиши настоящую задачу.

firkax ★★★★★
()
Ответ на: комментарий от Shushundr

Никакой дыры вы же локально ноду разворачиваете, а не на удаленную ломитесь. Я уверен с вероятность 95% что это можно обстряпать, просто овчинка выделки не стоит в вашем случае, есть более простые способы.

abcq ★★
()
Ответ на: комментарий от abcq

Уже и ноду приплели, так и получается помойная блоатварь в итоге. Если автор такое сделает его через какое-то время проклинать будут все кто пользуется этой системой.

firkax ★★★★★
()
Ответ на: комментарий от Shushundr

Выбери наиболее разумное И ЛОГИЧНОЕ приложение и научи им пользоваться людей, сначала они поворчат, но если выбранное или созданное приложение будет логичным, то просто поменяют своё мышление.

И это самое простое, ты не сможешь сделать костылями аналог БД не создав этим костыльную БД со всеми прелестями костылей.

torvn77 ★★★★★
()
Последнее исправление: torvn77 (всего исправлений: 2)
Ответ на: комментарий от firkax

Как он ссылки открывает - копирует текст из документа, вставляет в адресную строку?

Пока не знаю. Но вон выше предложили «actions» в pdf на javascript прикреплять к ссылкам. Ну то есть, там какой-то специальный протокол (myid://{GUID}), в системе зарегистрировать приложение, открывающее ссылки по этому протоколу.

Shushundr ★★★
() автор топика
Ответ на: комментарий от firkax

ну это был просто пример возможности сделать это, если вы почитаете внимательно, я прямым текстом говорю что это не нужно делать.

там кстати есть и другие варианты без жс и ноды как обстряпать это дело, но тоже со скриптами, там достаточно видов экшинов для костылестроительства

abcq ★★
()
Последнее исправление: abcq (всего исправлений: 1)
Ответ на: комментарий от Shushundr

Пока не знаю.

Задача секретная что ли? Неужели так сложно описать нормально?

в pdf на javascript прикреплять к ссылкам

там какой-то специальный протокол

в системе зарегистрировать приложение

Ворох костылей чтобы компенсировать непонятно что. Как это выглядит:

1. требуется показывать документ обязательно в pdf, и из него должны быть ссылки

2. куда ведут ссылки - ты заранее не знаешь, ибо мейнтейнят их таргеты какие-то идиоты, которые не могут внятно сформулировать адрес, но они должны вести

3. несмотря на обязательное требование именно pdf, можно заставлять юзеров-читателей ставить себе доп. приложение для поиска таргетов ссылок в реальном времени

4. хуже того, можно заставлять их ставить себе драйвер специальной файловой системы

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Я внятно и подробно описал что именно я хочу компенсировать. Если тебе непонятно, тут ничего сделать нельзя.

Могу только повторить: при изменении имён директорий созданные ранее документы должны продолжать работать как ни в чём не бывало без необходимости их изменять.

Shushundr ★★★
() автор топика
Ответ на: комментарий от Shushundr

Налепи свои файлы в пдф не ссылками, а вложениями (attachments). PDF это все-таки PORTABLE document format, он при необходимости должен переноситься целиком.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от firkax
  1. требуется показывать документ обязательно в pdf, и из него должны быть ссылки

Если документ будет на HTML или в другом любом формате, задача не изменится.

Shushundr ★★★
() автор топика
Ответ на: комментарий от thesis

Я не знаю, как устроены attachments в pdf, но если там файловые пути в файловой системе, то всё поломается.

Shushundr ★★★
() автор топика
Ответ на: комментарий от Shushundr

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

abcq ★★
()
Последнее исправление: abcq (всего исправлений: 1)
Ответ на: комментарий от Shushundr

Я думаю тебе надо сходить к психологу и пройти курс общения с людьми потому что имхо ты пытаешся с помощью программ компенсировать свой отказ от чётких и решительных действий.

torvn77 ★★★★★
()
Ответ на: комментарий от torvn77

имхо ты пытаешся с помощью программ компенсировать свой отказ от чётких и решительных действий.

Не я такой, жизнь такая. Нет во мне божественных сил достаточных для изменения реальности.

Твоё действие с внедрением системы документооборота мне не нравится, и пользователям не понравится, гарантирую. Потому что всегда найдётся несколько людей, которые будут свои документы делать где-нибудь снаружи вне этой системы.

Shushundr ★★★
() автор топика
Ответ на: комментарий от Shushundr

Ну то есть, там какой-то специальный протокол (myid://{GUID}), в системе зарегистрировать приложение, открывающее ссылки по этому протоколу.

Можно делать проще. Чтобы ссылки вели на http://permanentlinks.company.com/somedoc.xls , а на вебсервере это обрабатывал скрипт, если файл есть, выдавал его, если нет, искал по inode/имени/etc, нашел - выдал и обновил данные о нем, не нашел - 404 и отправка алерта на почту.

goingUp ★★★★★
()
Ответ на: комментарий от goingUp

Вот. А потом додуматься раздавать юзерам не пдф, а ссылку на сайт. А пдф выкинуть к херам.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от Shushundr

не, надо чтобы ссылка вела на последнюю актуальную версию.

У последней актуальной версии файла хеш будет отличаться от предыдущей. А, учитывая что отличаться может и путь, вообще непонятно, как ты собрался понять что это тот же файл. Ну, вот у тебя было дерево файлов, в нём есть файл proj/dir/Qwerty.txt. Потом идиот-мэйнтейнер обновил его содержимое, да и понял, что файл должен называться images/pic1.gif. Старый он удалил, новый залил. Тут принципиально нет никакого способа сопоставить старый файл и новый, если только мэйнтейнер сам тебе об этом не скажет.

firkax ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.