Y a-t-il un moyen de vérifier si cp -r
écraserait quelque chose, sans rien copier?
-n
semble copier des fichiers qui n'entrent pas en collision, ce qui n'est pas ce que je veux.
3 Réponses :
Le moyen le plus simple est d'utiliser la commande rsync
là où vous avez beaucoup de paramètres pour remplacer la cible ou supprimer des fichiers sur la cible si vous le souhaitez.
https://linux.die.net/man/1/rsync
ou similaire mentionné dans les commentaires, vous pouvez utiliser cp -n
pour --no-clobber
. Mais en général, je suggérerais rsync là où vous avez beaucoup plus de possibilités.
Se mettre d'accord. Si vous avez besoin de savoir, cp n'est pas le bon outil.
Notez que cp a l'option -i --interactive et l'option -n, --no-clobber.
cp a l'option -i --interactive et l'option -n, --no-clobber. Voir `man 1 cp '.
Pour vérifier uniquement si le fichier existe à l'emplacement cible, mais pour n'effectuer aucune copie, vous pouvez utiliser la commande diff
avec l'option -r
.
De man diff
:
-r, --recursive
comparer récursivement tous les sous-répertoires trouvés
Files /source-folder/file1.txt and /target-folder/file1.txt are identical Files /source-folder/file2.jpg and /target-folder/file2.jpg differ
--brief
répertorie les fichiers qui diffèrent (identique à -q
) --report-identiques-files
fait de même pour les fichiers qui ne diffèrent pas (comme -s
) grep -v '^ Only in'
supprime les fichiers qui ne se trouvent que dans une arborescence de répertoires, car ils ne seront pas écrasés. La sortie ressemblera à ceci:
diff -r --brief --report-identical-files /source-folder/ /target-folder/ | grep -v '^Only in'
Copie possible de Linux comment copier mais pas écraser?
Double intersite: unix.stackexchange.com/questions/187937/...