Antworten:
Basierend auf So überprüfen Sie, ob zwei Verzeichnisse oder Dateien zum selben Dateisystem gehören ( /unix// ):
In einem Shell-Skript unter Linux kann dies mit stat erfolgen :
stat -c "%d" /path # returns the decimal device number
Also kannst du:
file1=$(stat -c "%d" /path/file1)
file2=$(stat -c "%d" /path/file2)
und dann vergleichen.
Sie können auch so schreiben:
if [ $(stat -c "%d" /path/file1) -eq $(stat -c "%d" /path/file1) ]
then
# mv sentence
fi
Andere Option. Auch aus der Stackexchange-Frage entnommen :
if [[ $(df -P /path/file1 | tail -1) = $(df -P /path/file2 | tail -1) ]]
then
# echo "same filesystem"
# mv sentence
fi
$(...)
statt , um die bessere Praxis zu verbreiten `...`
. Letzteres wird zugunsten des ersteren abgelehnt.
stat
, dass es manchmal schwierig ist, zumindest mit SunOS. Aber als Linux hoffe ich, dass es kompatibel ist. Mit meinem Ubuntu 12 ist es in Ordnung.
%d
gibt verschiedene Werte für verschiedene Verzeichnisse aus (sogar dieselbe Partition). Versuchen Sie es mit Ihrem /
und/tmp