tag 49335 notabug
close 49335
stop

On 02/07/2021 17:32, Ricky Tigg wrote:
Hello, symbolic link counted as hard link. To reproduce:

$ touch t; ln -sr t l; stat -c '%i %h %n %F' t l
4172493 1 t regular empty file
4172494 1 l symbolic link

'%h' reports *1* despite no hard link is involved. Isn't rather *0*
expected?

1 is expected for any standard file as the names of those files are 
(hard)linked to an associated inode.
I.e. a hardlink is not a type of file, rather a structure of the file system.
One would only expect 0 for names unlinked from the file system,
which you could demonstrate like:

  f=file.to.delete; touch "$f" && (rm "$f" && stat -L -c '%h' /dev/stdin) < "$f"

The following gives an overview of the various types of links:
https://www.pixelbeat.org/docs/unix_links.html

cheers,
Pádraig



Reply via email to