Am o problemă cu atributele fișierelor, deoarece am schimbat sistemul de fișiere al companiei mele de la un vechi ubuntu 12 la un Synology NAS.
Am montat inițial share-uri NFS pe vechiul meu sistem de fișiere, apoi cu cp am copiat totul, totul era ok Dar am uitat să păstrez atributele, și am pierdut mai ales data, datele au devenit data copierii, și nu data reală.
Am găsit comanda rsync rsync -vrt --size-only /src /dest Dar unele fișiere au fost modificate de la copiere, iar comanda le suprascrie...
De exemplu, am încercat să creez un fișier pe vechiul sistem de fișiere, copiendu-l pe noua synology, apoi modificând fișierul pe synology. Când folosesc rsync, fișierul este șters și înlocuit cu o versiune veche.
Caut o comandă, pentru a copia marcaje temporale pentru fișiere numai atunci când fișierul are exact aceeași dimensiune (nu au fost modificate)
Nu contează dacă durează mult
Editați | × :
Am încercat soluția propusă cu un director de testare, fără eroare, dar fără modificări:
old_base=/home/samba/shares/projects/test
new_base=/mnt/NAS
cp $bază_veche $bază_nouă -rv
`/home/samba/shares/projects/test/1201.txt' -> `/mnt/NAS/test/1201.txt'
`/home/samba/shares/projects/test/test.txt' -> `/mnt/NAS/test/test.txt'
`/home/samba/shares/projects/test/1200.txt' -> `/mnt/NAS/test/1200.txt'
`/home/samba/shares/projects/test/1202/1202.txt' -> `/mnt/NAS/test/1202/1202.txt'
Acum noua mea bază este aceeași cu cea veche, dar nicio marcaj de timp ca realitatea
Modific un fișier, adăugând conținut pentru a simula un fișier editat, deoarece am copiat totul
Apoi aplic soluția ta:
root@xx:/mnt/NAS/test# cd $old_base; găsi . -tip f | xargs ls -s | sortează -k 2,2 >/tmp/old
root@xx:/home/samba/shares/projects/test# cd $new_base; găsi . -tip f | xargs ls -s | sortare -k 2,2 >/tmp/new
root@xx:/mnt/NAS# comm -12 /tmp/old /tmp/new | în timp ce se citește dimensiunea numelui fișierului; atingeți ${new_base}/${filename} -r ${old_base}/${filename}; Terminat
comm: fișierul 2 nu este în ordine sortată
comm: fișierul 1 nu este în ordinea sortată
Nu am nicio eroare, dar nicio modificare
(Nu sunt sigur ce vrei să spui prin ${filename}, dar am încercat să-l înlocuiesc și cu ${new_base}/*
Editare: 22/07
Nu am niciun rezultat când folosesc
comm -12 --nocheck-order /tmp/old /tmp/new