Answers:
基于如何检查两个目录或文件是否属于同一文件系统(https://unix.stackexchange.com/):
在Linux上的Shell脚本中,可以使用stat完成:
stat -c "%d" /path # returns the decimal device number
所以你可以:
file1=$(stat -c "%d" /path/file1)
file2=$(stat -c "%d" /path/file2)
然后比较。
您也可以这样写:
if [ $(stat -c "%d" /path/file1) -eq $(stat -c "%d" /path/file1) ]
then
# mv sentence
fi
其他选择。也取自Stackexchange问题:
if [[ $(df -P /path/file1 | tail -1) = $(df -P /path/file2 | tail -1) ]]
then
# echo "same filesystem"
# mv sentence
fi
$(...)
代替`...`
。不推荐使用后者,而推荐使用前者。
stat
告诉我,有时候使用SunOS有时会有些棘手。但是我希望它是Linux兼容的。使用我的Ubuntu 12很好。
%d
为不同的目录(甚至是相同的分区)输出不同的值,请尝试使用/
/tmp