我有一个路径A,它是路径B的符号链接。路径C有些不同。
如果目的地相同,我如何检查?
我想在以下情况下成真:
A = B
A = A
B = B
C = C
我想在以下情况下弄错:
A = C
B = C
谢谢
答案 0 :(得分:2)
使用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