जवाबों:
दो निर्देशिकाओं या फ़ाइलों को एक ही फाइल सिस्टम ( https://unix.stackexchange.com/ ) से संबंधित कैसे जांचना है इसके आधार पर :
लिनक्स पर एक शेल स्क्रिप्ट में इसे स्टेट के साथ किया जा सकता है :
stat -c "%d" /path # returns the decimal device number
तो तुम कर सकते हो:
file1=$(stat -c "%d" /path/file1)
file2=$(stat -c "%d" /path/file2)
और फिर तुलना करें।
आप इस तरह भी लिख सकते हैं:
if [ $(stat -c "%d" /path/file1) -eq $(stat -c "%d" /path/file1) ]
then
# mv sentence
fi
दूसरा विकल्प। Stackexchange प्रश्न से भी लिया गया :
if [[ $(df -P /path/file1 | tail -1) = $(df -P /path/file2 | tail -1) ]]
then
# echo "same filesystem"
# mv sentence
fi
$(...)
इसके बजाय का उपयोग करें `...`
। बाद में पूर्व के पक्ष में पदावनत कर दिया जाता है।
stat
बताता है कि यह कभी-कभी मुश्किल होता है, कम से कम सनोस के साथ। लेकिन लिनक्स होने के नाते मुझे उम्मीद है कि यह संगत है। मेरे Ubuntu 12 के साथ यह ठीक है।
%d
विभिन्न dirs (समान विभाजन भी) के लिए अलग-अलग मानों के साथ आपके /
और/tmp