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.
statme 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.
%dgénère des valeurs différentes pour différents répertoires (même partition) essayez avec votre /et/tmp