Trouver et replace tous les mêmes files entre 2 directorys

Je veux find tous les files dans dir1 ayant les mêmes noms de files dans dir2 , et les replace par les files de dir2 .

Par exemple:

 dir1: first.txt second.txt dir2: third.txt first.txt 

Donc, je veux supprimer de dir1 l'ancien file first.txt et le replace par first.txt partir de first.txt .

Comment réaliser cela en utilisant le terminal Bash?

En fait, il y a une seule command qui fait exactement ce que vous requestz.

 rsync -av --existing dir2/ dir1/ 

Cela copyra récursivement les files de dir2 dans dir1 uniquement si le file existe déjà dans dir1.

Les options -av sont les options que vous utiliserez habituellement pour copyr des files en utilisant rsync.

L'option --existing indique à rsync d'ignorer la création de nouveaux files sur le récepteur.

Vous devez avoir la barre oblique sur dir2 / sur la command line car rsync se comporte différemment que la plupart des commands dans la barre oblique a une signification pour rsync.

rsync peut également être utilisé sur le réseau similaire à scp .

rsync peut gérer de nombreux autres types de tâches de synchronisation, de mise à jour et de sauvegarde de files.

rsync peut le faire avec l'option --existing :

rsync -v --existing dir2/* dir1/