Unix检查两个路径是否相同

Unix检查两个路径是否相同,unix,symlink,Unix,Symlink,我有一个路径a,它是路径B的符号链接。路径C有些不同 如果目的地相同,我如何检查 我想实现,以防: A = B A = A B = B C = C A = C B = C 我想得到假,以防: A = B A = A B = B C = C A = C B = C 谢谢使用inode编号 touch m n # Create m and n ln -s m o # Symlink o to m ls -lLi m n o # Look at inodes of all

我有一个路径a,它是路径B的符号链接。路径C有些不同

如果目的地相同,我如何检查

我想实现,以防:

A = B
A = A
B = B
C = C
A = C
B = C
我想得到假,以防:

A = B
A = A
B = B
C = C
A = C
B = C
谢谢使用inode编号

touch m n    # Create m and n
ln -s m o    # Symlink o to m

ls -lLi m n o    # Look at inodes of all files, see o and m are the same.
13132212 -rw-r--r--  1 mark  staff  0 10 Dec 15:18 m
13132213 -rw-r--r--  1 mark  staff  0 10 Dec 15:18 n
13132212 -rw-r--r--  1 mark  staff  0 10 Dec 15:18 o
因此,如果要在脚本中获取inode编号,可以执行以下操作:

minode=$(ls -Li m | awk '{print $1}')
echo $minode
13132212

oinode=$(ls -Li o | awk '{print $1}')
echo $oinode
13132212
并进行如下测试:

[ $minode -eq $oinode ] && echo equal

您可以使用readlink获取符号链接目的地。使用
ls-Li
获取inode编号-在相同的位置,名称引用相同的文件。感谢您对inode的想法。我将使用stat-Lc%I a