Файлы Hardlink не совпадают
Я создал жесткую ссылку на файл следующим образом:
ln /path/to/source/file1 /path/to/target/file2
Используя md5sum, два файла идентичны. Через некоторое время исходный файл был изменен другой программой. Целевой файл не обновляется. Md5sums теперь другие. Файлы находятся в одном разделе, конечно, в противном случае я не смог бы создать ссылку.
То, что я пытаюсь сделать, это получить копию исходного файла в целевую папку (которая является версионной), чтобы у меня был доступ к исходному файлу в другом месте.
Я попытался переместить исходный файл в целевую папку с другим именем и затем создать символическую ссылку на него в источнике, но программа, ожидающая этот файл, (каким-то образом) создала файл с нужным именем в целевой папке.
Идеи?
2 ответа
Я предполагаю, что система контроля версий (какая?) Перемещает / удаляет жестко связанный файл и создает новую копию, которая больше не связана с исходным файлом.
Что подсчитывает ссылка (первый числовой столбец в выводе ls -l
) скажите для оригинального файла? Если это 1, ссылка потерялась. Если это 2, вы должны найти настоящую 2-ую копию, возможно, с помощью команды find. Для этого введите следующую команду:
find /commonparent_dir -samefile /path/to/original_file
Это ищет файлы с тем же индексом, что и файл /path/to/original_file
начиная с общего родительского каталога (т.е. точки монтирования).
Я могу повторить сценарий в тестовом примере, поэтому я предполагаю, что это именно то, что происходит. Если исходный файл удален, жесткая ссылка теряется. Даже если новый файл создается с тем же именем, жесткая ссылка, конечно, не восстанавливается. Это то, что должно происходить, я думаю. Программа, которая обновляет исходный файл, должна удалить файл и создать его заново.