So verschieben Sie Ordner unter Unix mit mv nur, wenn sich das Ziel auf demselben Laufwerk befindet
10
Ich muss einen Ordner mit dem Befehl unix mv verschieben, aber nur, wenn sich das Ziel auf demselben Laufwerk oder demselben Dateisystem befindet. Was wäre der beste Ansatz?
Denken Sie, dass es über Linux-Distributionen kompatibel ist?
Verwenden Sie $(...)statt , um die bessere Praxis zu verbreiten `...`. Letzteres wird zugunsten des ersteren abgelehnt.
Shahbaz
Danke @Shahbaz, habe es gerade mit deiner Empfehlung bearbeitet!
Fedorqui
@zapp Ich weiß nicht, sollte es testen. Meine Erfahrung mit zeigt 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.
Fedorqui
Dies %dgibt verschiedene Werte für verschiedene Verzeichnisse aus (sogar dieselbe Partition). Versuchen Sie es mit Ihrem /und/tmp
Kent
2
Dies ist wahrscheinlich nicht die sauberste Lösung, aber Sie können die Tatsache nutzen, dass keine festen Verbindungen zwischen Laufwerken hergestellt werden können.
ln /path1/file /path2/file 2>/dev/null
if[[ $?==0]]then
rm /path1/file
fi
Antworten:
Basierend auf So überprüfen Sie, ob zwei Verzeichnisse oder Dateien zum selben Dateisystem gehören ( /unix// ):
Also kannst du:
und dann vergleichen.
Sie können auch so schreiben:
Andere Option. Auch aus der Stackexchange-Frage entnommen :
quelle
$(...)
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
Dies ist wahrscheinlich nicht die sauberste Lösung, aber Sie können die Tatsache nutzen, dass keine festen Verbindungen zwischen Laufwerken hergestellt werden können.
quelle