Jawaban:
Berdasarkan Cara memeriksa apakah dua direktori atau file milik sistem file yang sama ( /unix// ):
Dalam skrip shell di Linux dapat dilakukan dengan stat :
stat -c "%d" /path # returns the decimal device number
Jadi kamu bisa:
file1=$(stat -c "%d" /path/file1)
file2=$(stat -c "%d" /path/file2)
dan kemudian membandingkan.
Anda juga dapat menulis seperti ini:
if [ $(stat -c "%d" /path/file1) -eq $(stat -c "%d" /path/file1) ]
then
# mv sentence
fi
Pilihan lain. Juga diambil dari pertanyaan Stackexchange :
if [[ $(df -P /path/file1 | tail -1) = $(df -P /path/file2 | tail -1) ]]
then
# echo "same filesystem"
# mv sentence
fi
$(...)
saja `...`
. Yang kemudian ditinggalkan demi yang pertama.
stat
mengatakan bahwa kadang-kadang sulit, setidaknya dengan SunOS. Tetapi sebagai Linux saya harap ini kompatibel. Dengan Ubuntu 12 saya baik-baik saja.
%d
menghasilkan nilai yang berbeda untuk dir yang berbeda (bahkan partisi yang sama) coba dengan /
dan/tmp