Je viens d'essayer de déplacer un grand arbre d'un disque à un autre, qui était trop petit. Maintenant, je me retrouve avec quelque chose que je ne peux pas vraiment comprendre - il semble que certains fichiers ont effectivement été éloignés de l'arborescence source tandis que d'autres ont été simplement copiés. Ce n'est probablement pas vrai, et je suis en train d'oublier quelque chose, comme je l'ai fait lorsque je vérifie la place libre sur le disque cible. :RÉ
La commande était simplement mv source-dir destination-dir
, où les deux répertoires résident sur des disques différents. J'utilise mv (GNU coreutils) 7.4
. Nulle part dans la page de manuel, je n'ai trouvé les réponses aux questions suivantes:
- des fichiers tronqués peuvent-ils être créés?
- en cas d'erreur, est-ce que quelque chose dans l'arborescence source sera supprimé?
- comment récupérer (de manière simple et rapide)?
mv src1 src2 dst
fonctionne à cet égard similaire àmv src1 dst; mv src2 dst
et chaque singlemv src dst
est commecp -a src dst && rm -rf src
?cp -a
est déjà récursif, je doute qu'il s'applique aux fichiers et répertoires individuels trouvés lors de la traversée de l'arbre. Fera quelques tests plus tard.Lorsque mv se déplace vers un autre système de fichiers, il copie d'abord toutes les données dans le nouveau système de fichiers. Une fois les nouvelles données copiées, elles suppriment les anciennes données. Cela signifie que si le déplacement est interrompu ou échoué, l'emplacement source doit toujours contenir toutes les données.
En ce qui concerne la récupération, seules les données de destination doivent être corrompues. Au lieu d'utiliser à nouveau mv, utilisez simplement rsync puis rm manuellement
la source