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.
%dgibt verschiedene Werte für verschiedene Verzeichnisse aus (sogar dieselbe Partition). Versuchen Sie es mit Ihrem /und/tmp