Ответы:
На основе Как проверить, принадлежат ли два каталога или файла к одной файловой системе ( /unix// ):
В сценарии оболочки в Linux это можно сделать с помощью 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