How to find out a file is hard link or symlink?
Solution 1
-rw--r--r-- 2 kamix users 5 Nov 17:10 hardfile.txt
^
That's the number of hard links the file has. A "hard link" is actually between two directory entries; they're really the same file. You can tell by looking at the output from stat
:
stat hardlink.file | grep -i inode
Device: 805h/2053d Inode: 1835019 Links: 2
Notice again the number of links is 2, indicating there's another listing for this file somewhere. The reason you know this is the same file as another is they have the same inode number; no other file will have that. Unfortunately, this is the only way to find them (by inode number).
There are some ideas about how best to find a file by inode (e.g., with find
) in this Q&A.
Solution 2
A hard linked file has more than one link (the 2
after the permission flags). You can use the stat
command to easily extract this information:
$ stat --printf '%h\n' hardfile.txt
2
See the manpage for stat
(man 1 stat
) for information about other values and how to print them.
Related videos on Youtube
![Hamed Kamrava](https://i.stack.imgur.com/wEKf5.png?s=256&g=1)
Comments
-
Hamed Kamrava almost 2 years
I have a file in
~/file.txt
.I have created a hard link by :
ln ~/file.txt ~/test/hardfile.txt
and a symlink file :
ln -s ~/file.txt ~/test/symfile.txt
Now,
- How can I find out that which file is hard link ?
- How can I find out hard link follows which file?
We can find symlink file by
->
, but what about hard link? -
Hamed Kamrava over 9 yearsAlso, Can I find out hard link file follows which file?
-
goldilocks over 9 yearsNot directly. That information isn't kept anywhere. unix.stackexchange.com/a/75529/25985