Как определить жесткую ссылку, используя python? - PullRequest
0 голосов
/ 18 апреля 2020

Я хотел бы знать, возможно ли идентифицировать жесткую ссылку на Linux. Например:

dd if=/dev/urandom bs=1024 count=10000 of=file_10MB conv=notrunc
ln file_10MB file_10MB_link1
if is_hardlink("file_10MB_link1"):
    pass

Ответы [ 2 ]

2 голосов
/ 18 апреля 2020

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

Вы можете использовать код в ответе Энтони Соттиля, чтобы сказать, имеет ли файл несколько ссылок на него, но вы можете ' Скажи, какой оригинал.

1 голос
/ 18 апреля 2020

Я считаю, что вы ищете "файлы с количеством ссылок больше 1"

, для которых вы можете использовать:

def more_than_one_link(filename):
    os.stat(filename).st_nlink > 1
...