Re: diff de répertoire

Page principale

Répondre à ce message
Auteur: anne.guilde@free.fr
Date:  
À: guilde
Sujet: Re: diff de répertoire
Le 23/01/2018 à 09:58, anne.guilde@??? a écrit :
>
> Cette fin de printemps/été j'ai fait plein de test pour savoir quelle
> interface graphique j'allais utiliser pour ma debian stretch et mon
> nouveau pc lenovo T450s.
>
> Je voulais gnome mais cela plantait sans arrêt.
> Actuellement, j'utilise mate.
>
> A chaque fois changement d'essais d'interface graphique, je faisais un
> ddrescue pour mettre ce que je venais de tester sur un nouveau disque et
> je repartais de ma debian jessie en essayant de récupérer les données.
>
> Je me retrouve avec 3 versions de ma debian 9 + la version de debian 8
>
> La partition (home) fait plus de 400 go donc pas simple pour tester les
> différences entre chaque version.
>
> edgar m'avait filé la commande
>
>  rsync -anv --delete $new_dir $old_dir
>
> J'ai fait des tests avec
> - rsync -anv --delete $new_dir $old_dir
> et
> rsync -anv $new_dir $old_dir
>
> avec --delete cela  me donne les nouveaux fichiers dans new-dir ou
> modifiés entre new-dir et old-dir et les fichiers qui n'existent que
> dans old-dir
>
> sans --delete cela  me donne les nouveaux fichiers ou modifiés entre
> new-dir et old-dir
>
> J'ai 2 répertoires :
> le nouveau : sda1/anne/Documents/
> l'ancien : /media/anne/38xxx/anne/Documents/
>
> # rsync -anv sda1/anne/Documents/  /media/anne/38xxx/anne/Documents/
> >Documents/diff-documents-sda1-38xxx
> => cela me donne
> - les fichiers qui ont été créés dans sda1 ou modifiés entre sda1 et 38xxx
>
> # rsync -anv -- delete sda1/anne/Documents/
> /media/anne/38xxx/anne/Documents/
> >Documents/diff-documents-sda1-38xxx-delete
> => cela me donne
> - les fichiers qui ont été créés dans sda1 ou modifiés entre sda1 et 38xxx
> - et les fichiers qui existent dans 38xxx et pas dans sda1 (A)
>
> # rsync -anv /media/anne/38xxx/anne/Documents/  sda1/anne/Documents/
> >Documents/diff-documents-38xxx-sda1
> => cela me donne
> - les fichiers qui ont été créés dans 38xxx modifiés entre 38xxx et sda1
>
> # rsync -anv --delete /media/anne/38xxx/anne/Documents/
> sda1/anne/Documents/  >Documents/diff-documents-38xxx-sda1-delete
> => cela me donne
> - les fichiers qui ont été créés dans 38xxx ou modifiés entre 38xxx et sda1
> - et les fichiers qui existent dans sda1 et pas dans 38xxx
>
> Avec cela je devrais pouvoir récupérer toutes les données.
>
> (A) En récupérant toutes les lignes qui commencent par 'deleting', je
> devrais pouvoir récupérer tous les fichiers qui n'existent que dans 38xxx
>

Pour la partition ext4 de 500 go

J'ai la liste les fichiers qui ont été créés ou modifiés

Quelle commande faire pour connaître la taille et la date d'un fichier
sans faire un ls -al et après des sed...

Et après comment comparer des dates?
merci

-----------

Pour le répertoire de 150 go en ntfs
J'ai récupéré la liste des répertoires avec la commande
ls /media/anne/Donnees

J'ai fait un petit bash qui va lire tous les répertoires et qui va faire
un diff entre chaque partition de Donnees

----
#!/bin/bash

# Partition de Donnees montée
rep1='/media/anne/746D6DA9532340E9/'
rep2='/media/anne/Donnees1/'
rep3='/media/anne/Donnees/'

# liste des répertoires
toto='amb                caf           cert8.db            cle-3g
dicom               dicom1        Documents-20130226  edf.odt
    tomtom        vente-prive         wammu'


# J'enlève les espaces pour n'en laisser qu'un
toto3=`echo $toto | sed s/' '/' '/g`

# J'ajoute les parenthèses pour avoir la liste des répertoires sous
forme de tableau
toto4="($toto3)"

# visu de la liste
echo toto4 : $toto4
echo " "


declare -a tableau=$toto4

for i in ${!tableau[*]}
do
# liste du tableau
#    echo "tableau[$i]=${tableau[$i]}"


# comparaison des répertoires avec diff
    echo "$rep2${tableau[$i]}  ---  $rep3${tableau[$i]}"
    diff "$rep2${tableau[$i]}" "$rep3${tableau[$i]}"
    echo " "
done
-----


je le lance
# ./compare-Donnees > liste-compare-donnees5

liste-compare-donnees me donne une liste de ce style

-----
...
/media/anne/Donnees1/edf.odt --- /media/anne/Donnees/edf.odt

/media/anne/Donnees1/epson-1240 --- /media/anne/Donnees/epson-1240
Les sous-répertoires /media/anne/Donnees1/epson-1240/epson-1240-32 et
/media/anne/Donnees/epson-1240/epson-1240-32 sont identiques
Les sous-répertoires /media/anne/Donnees1/epson-1240/v600-32 et
/media/anne/Donnees/epson-1240/v600-32 sont identiques
/media/anne/Donnees1/tomtom --- /media/anne/Donnees/tomtom
Les sous-répertoires /media/anne/Donnees1/tomtom/gps et
/media/anne/Donnees/tomtom/gps sont identiques

/media/anne/Donnees1/invalidite --- /media/anne/Donnees/invalidite
Les sous-répertoires
/media/anne/Donnees1/invalidite/201204-harmonisation-mode-de-calcul-pensions-dinvalidite_fichiers
et
/media/anne/Donnees/invalidite/201204-harmonisation-mode-de-calcul-pensions-dinvalidite_fichiers
sont identiques
Seulement dans /media/anne/Donnees/invalidite: Cnav - Base nationale de
législation : Accueil internet_fichiers
Seulement dans /media/anne/Donnees/invalidite: Cnav - Base nationale de
législation : Accueil internet.html
...
-----

Ce que je trouve bizarre, je n'ai pas de fichiers modifiés, seulement
des fichiers ajoutés

Ma commande est bonne ou pas?
diff rep1 rep2 > fichier-resultat

Anne