Yanıtlar:
Dayanarak iki dizin veya dosya aynı dosya sistemine ait olmadığını kontrol etme ( https://unix.stackexchange.com/ ):
Linux'taki bir kabuk komut dosyasında stat ile yapılabilir :
stat -c "%d" /path # returns the decimal device number
Böylece yapabilirsiniz:
file1=$(stat -c "%d" /path/file1)
file2=$(stat -c "%d" /path/file2)
ve sonra karşılaştırın.
Ayrıca şöyle yazabilirsiniz:
if [ $(stat -c "%d" /path/file1) -eq $(stat -c "%d" /path/file1) ]
then
# mv sentence
fi
Diğer seçenek. Stackexchange sorusundan da alınmıştır :
if [[ $(df -P /path/file1 | tail -1) = $(df -P /path/file2 | tail -1) ]]
then
# echo "same filesystem"
# mv sentence
fi
$(...)
yerine `...`
. Daha sonra birincinin lehine itiraz edilir.
stat
bana bunun bazen en azından SunOS ile ilgili zor olduğunu söylüyor. Ama Linux olarak umarım uyumludur. Benim Ubuntu 12 ile sorun yok.
%d
, farklı dirs için farklı değerler (hatta aynı bölüm) verir /
ve/tmp