rsync
peut être amené dans des dossiers mobiles de manière très similaire et supérieure à la traditionnelle mv
avec les options suivantes:
rsync -axvvES --remove-source-files source_directory /destination/
Cependant, une chose que je n'arrive pas encore à faire est de supprimer les répertoires d'origine. Le --remove-source-files
drapeau fait juste cela, supprime les fichiers source, mais pas aussi les répertoires source. J'aurais aimé qu'il y ait aussi un --remove-source-directories
drapeau, mais il n'y en a pas.
Comment puis-je gérer cela? Je suppose que je peux simplement émettre un rm -fr
après le déménagement, mais je préférerais garder la procédure tout en un seul processus par rapport à l'introduction d'un potentiel d'erreurs.
mv
?find . -type d -empty | xargs rmdir -p
rsync
session dans une liste qui est ensuite traitée en suivant le processus qui la nettoie ensuite ... Hmm.Réponses:
Je n'ai pas trouvé de commande qui fait cela en une seule fois, mais puisque rsync fonctionne toujours mieux que
rm -rf
(spécialement si vous avez un très grand nombre de répertoires), voici deux commandes rsync qui font un "déplacement" :la source
L'utilisation de " rm -rf " a une condition de concurrence inhérente, vous pouvez notamment supprimer les fichiers qui viennent d'être créés entre les appels rsync et rm .
Je préfère utiliser:
Cela ne supprimera PAS les répertoires s'ils ne sont pas vides.
la source
-depth
sur OSX ou autres.Je me suis retrouvé dans une situation similaire. Je voulais éviter
rm -rf
, sachant que rsync n'a pas réussi à copier certains fichiers, et je ne voulais pas les perdre.Pour supprimer simplement les répertoires vides, j'ai trouvé celui-ci le plus pratique (de
sourcedir
):la source
Pourquoi ne pas simplement ajouter
rm -rf source_directory
après votre rsync?Chaque programme de ligne de commande est (idéalement) conçu pour effectuer une tâche spécifiée, et c'est à vous d'en coller plusieurs pour accomplir des tâches plus complexes.
la source
find -depth
. Auriez-vous une suggestion quant à une approche algorithmique rapide pour descendre au bas de la pile de dir, mv'ing avec rsync, rm'ing comme vous le notez, puis remonter dans l'arborescence?