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