2009-06-13 2 views
1

У меня вопрос How do you track files in SMB with an application? open и я искал, возможно ли, что есть уникальные идентификаторы файлов, чтобы я мог отслеживать, когда перемещается файл/папка. Есть что-то вроде этого? Он может быть очень дебианнымЕсть ли уникальный идентификатор файлов?

ответ

2

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

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

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

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

1

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

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

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

Смежные вопросы