Unix检查两个路径是否相同
我有一个路径a,它是路径B的符号链接。路径C有些不同 如果目的地相同,我如何检查 我想实现,以防: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
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