Re: diff de répertoire

Page principale

Répondre à ce message
Auteur: Marc BERLIOUX
Date:  
À: guilde
Sujet: Re: diff de répertoire


Le 28 janvier 2018 15:12:47 GMT+01:00, "anne.guilde@???" <anne.guilde@???> a écrit :
>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...


Tu peux peut-être utiliser 'stat' pour ça.

>Et après comment comparer des dates?


La commande 'date' permet de créer un timestamp en secondes pour une date donnée. Tu peux ensuite comparer/soustraire ces timestamps.

>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


--
Marc
Debout sur la boule