De manière générale, je me trouve paniquer lorsque je réalise que si j'annule un geste de fichier, cela pourrait entraîner une cible ou une source d'être incomplète. Cette question s'applique aux plates-formes Windows et UNIX. Je ne me souviens plus jamais de savoir comment fonctionne la commande mobile dans les deux cas. Par exemple, si vous déplacez un répertoire; Est-ce qu'il copie tout le répertoire, puis le supprimez après ou copie-t-il puis supprimez chaque fichier individuellement?
Je réalise toujours, après avoir tapé quelque chose comme mv verybigdir dest
, que j'ai peut-être dû tapé cp -R verybigdir dest && rm -R verybigdir
(où le &&
Opérateur passe à la commande suivante uniquement si le premier a été réussi) - ou est-ce non inutile? Que se passe-t-il, exactement, quand j'appuie Ctrl+C mi-chemin à travers un mouvement? De même, qu'est-ce qui se passe exactement sur Windows lorsque j'appuie sur le bouton Annuler?
Je ne peux pas compter le nombre de fois que j'ai déplacé quelque chose (la dernière fois était lorsque vous utilisez svn
) et eu deux répertoires, avec des contenus fractionnés. Je suppose que la réponse est difficile, car toutes les applications Move Groupes de fichiers de la même manière.
Sous Windows, en passant sur le même lecteur et la même partition agira comme la commande MV de Unix et renommer le dossier ou modifier son rôle parent. Cependant, si vous devez le déplacer vers un autre pilote ou une autre partition, il copierait et supprimerait le fichier par fichier, pourquoi il est plus efficace d'utiliser un fichier tar ou un fichier zip sans compression pour déplacer des fichiers plus rapides entre les partitions et les disques durs. . Si vous deviez l'annuler, cela s'arrêterait simplement où il se trouve. Je croirais la même chose est vrai pour UNIX, mais je n'ai pas suffisamment expérimenté avec cela pour être sûr de 100%. Il s'agit simplement de changer l'inode, mais s'il s'agit d'une autre partition ou d'une autre partie, il doit être copié dans des secteurs sur cette partition ou cette conduite. Si vous deviez l'annuler pendant le transfert, cela aurait déjà déplacé des fichiers et le fichier transféré aurait le fichier de destination supprimé et le fichier source conservé (transaction annulée, mais votre fichier d'origine existe toujours).
MISE À JOUR: Si vous deviez annuler un mouvement et que vous vouliez le reprendre, réémunérez-vous simplement la commande de déménagement. Il peut vous avertir que le dossier de destination existe déjà, mais les fichiers ne seront pas écrasés (à moins qu'ils n'existaient avant le déménagement original ou ont été ajoutés entre les deux commandes de déménagement) depuis leur transfert, ils sont supprimés de la source (si sur une partition ou un lecteur différente).
Non.
Explication:
mv verybigdir dest
renorme trèsbigdir à destin. C'est une opération atomique, c'est-à-dire que vous ne pouvez pas échouer à mi-chemin.
Si DESTS est sur un autre périphérique, MV copiera d'abord, puis supprimez l'ancienne version. Ce n'est pas une opération atomique. Si cela échoue, vous n'avez peut-être qu'une copie partielle de Trèsbigdir à DEST, mais TrèsBigDir sera toujours complète.
Oui, d'autres applications peuvent déplacer des fichiers différemment.
Sous Windows, je copie et supprimez toujours au lieu de bouger. J'étais autrefois déplacé des fichiers et c'est là que j'ai remarqué d'abord un mauvais bâton de mémoire. Lors du déplacement du fichier, il s'est arrêté entre les deux et j'ai eu une erreur pour que j'ai vérifié le dossier source et que le fichier a été parti puis j'ai vérifié la destination et il y avait un fichier corrompu. Cela s'est produit plus fréquemment avec des fichiers de taille plus gros et la plupart d'entre eux ont été téléchargés qui ont pris des heures, alors je vous conseille de recommander la copie puis de la suppression. Sauvez-vous le temps au début, cela paiera à la fin.
Dans Windows, au moins, MOVE est simplement une copie et une suppression plus automatisées. Je crois que MV déplace chaque fichier individuellement, ce qui signifie que ^ c-ing ne perdra aucun fichier, vous allez simplement vous retrouver avec vos fichiers séparés entre deux places - Contrairement à l'Explorateur Windows, ce qui permettra de déplacer tout quand il annule.
Ma solution à ceci est: Ne déménagez jamais à moins que je sois sûr que je veux le déplacer.
Si vous utilisez des ACL sur le système de fichiers source, mais pas sur la destination, MV sous Linux copiera la source, puis - en raison de l'incapacité de définir les ACL sur la destination - STOP. Donc, vous finissez par avoir le fichier des deux côtés. Le n'est pas un interrupteur en mv pour empêcher ce comportement, donc dans ce cas, cp && rm est préférable.