Réponses:
Basé sur Comment vérifier si deux répertoires ou fichiers appartiennent au même système de fichiers ( /unix// ):
Dans un script shell sous Linux, cela peut être fait avec stat :
stat -c "%d" /path # returns the decimal device number
Afin que vous puissiez:
file1=$(stat -c "%d" /path/file1)
file2=$(stat -c "%d" /path/file2)
puis comparer.
Vous pouvez également écrire comme ceci:
if [ $(stat -c "%d" /path/file1) -eq $(stat -c "%d" /path/file1) ]
then
# mv sentence
fi
Autre option. Tiré également de la question Stackexchange :
if [[ $(df -P /path/file1 | tail -1) = $(df -P /path/file2 | tail -1) ]]
then
# echo "same filesystem"
# mv sentence
fi
$(...)
plutôt `...`
. Ce dernier est déconseillé au profit du premier.
stat
me dit que c'est parfois délicat, au moins avec SunOS. Mais étant Linux j'espère qu'il est compatible. Avec mon Ubuntu 12, ça va.
%d
génère des valeurs différentes pour différents répertoires (même partition) essayez avec votre /
et/tmp