Существует ли уникальный идентификатор для файлов?

StackOverflow https://stackoverflow.com/questions/991331

  •  13-09-2019
  •  | 
  •  

Вопрос

У меня есть вопрос Как вы отслеживаете файлы в SMB с помощью приложения? откройте, и я задумался, возможно, существуют уникальные идентификаторы для файлов, чтобы я мог отслеживать, когда файл / папка перемещается.Есть ли что-то подобное этому?Это может быть очень специфично для debian

Это было полезно?

Решение

Ответ, как всегда, "это зависит".Что вы подразумеваете под "уникальным идентификатором"?Изменится ли этот идентификатор при изменении содержимого файла, или вы будете рассматривать это как один и тот же файл?В Unix индекс вместе с устройством определяет "уникальный идентификатор", но он сохраняется, даже если содержимое изменяется.

Если вы хотите узнать, что касается файла, вы можете использовать inotify на том же компьютере, чтобы узнать, что происходит с файлами (или его предшественником:dnotify).

Если вам нужно, чтобы это распространялось по машинам, то я предполагаю, что samba будет использовать inotify для получения уведомлений и преобразования их в события SMB / CIFS, но я с этим не знаком.

Если вам нужен идентификатор на основе содержимого и поэтому вы используете хэши, вам нужно перейти в пространство пользователя.Например, это именно то, что делает Git (система контроля версий):он отслеживает хэши содержимого, чтобы иметь "уникальный идентификатор".

Другие советы

Если файлы не будут перемещены, вы можете использовать хэш.

Если вы можете запустить демон в фоновом режиме, вы пишете программу, используя inotify чтобы отслеживать события перемещения.

Если вы не можете этого сделать, вы могли бы использовать номер индекса (но это мог бы изменение при перемещении файла).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top