您问的是两个文件是否在同一个文件系统上.检查此方法的规范方法是stat()在两个文件上调用系统调用,并检查它们是否具有相同的st_dev值,以st_dev标识文件所在的设备.
您可以stat在bash中使用该命令来执行此测试:
device=$(stat -f '%d' /path/to/file)
Run Code Online (Sandbox Code Playgroud)
因此,要检查两个文件是否在同一文件系统上:
dev1=$(stat -f '%d' /path/to/file1)
dev2=$(stat -f '%d' /path/to/file2)
if [ "$dev1" = "$dev2" ]; then
echo "file1 and file2 are on the same filesystem"
fi
Run Code Online (Sandbox Code Playgroud)
以上是OS X下的工作; 可以在Linux上执行相同的检查,但stat命令需要-c或--format代替-f.