Odpowiedzi:
Na podstawie tego, jak sprawdzić, czy dwa katalogi lub pliki należą do tego samego systemu plików ( https://unix.stackexchange.com/ ):
W skrypcie powłoki w systemie Linux można to zrobić za pomocą stat :
stat -c "%d" /path # returns the decimal device number
Więc możesz:
file1=$(stat -c "%d" /path/file1)
file2=$(stat -c "%d" /path/file2)
a następnie porównaj.
Możesz także napisać w ten sposób:
if [ $(stat -c "%d" /path/file1) -eq $(stat -c "%d" /path/file1) ]
then
# mv sentence
fi
Inna opcja. Również wzięty z pytania Stackexchange :
if [[ $(df -P /path/file1 | tail -1) = $(df -P /path/file2 | tail -1) ]]
then
# echo "same filesystem"
# mv sentence
fi
$(...)
zamiast `...`
. Ten drugi jest przestarzały na rzecz tego pierwszego.
stat
wynika, że czasem jest to trudne, przynajmniej z SunOS. Ale jako Linux mam nadzieję, że jest kompatybilny. Z moim Ubuntu 12 jest w porządku.
%d
daje różne wartości dla różnych katalogów (nawet ta sama partycja) spróbuj z twoim /
i/tmp