Puncte:0

Copiați fișierele în funcție de dată cu structura directoarelor

drapel lk

Am laudat:

find /source/ -type f -newermt '18 dec 2020' -exec cp -t /target/ {} +

Această recomand să copieze numai fișiere, fără structură de directori, dar am nevoie de fișiere cu directorul părinte.

Al doilea lucru este de ce data fișierelor este schimbată când le-am copiat? Este posibil să nu schimbi data modificării fișierului când le copiez?

Puncte:3
drapel es

Există --preserve=toate opțiunea pentru cp; vedea om cp.

Dar recomand să folosești rsync în loc de cp; este mult mai versatil și este ușor să păstrați marcajele de timp și să copiați numai fișiere mai noi. Are o curbă de învățare cu toate acele opțiuni pe care le acceptă, dar merită să te scufundi în asta.

Cazul de utilizare normal arată cam așa:

rsync -n -av /some/where/sourcedir .

Acest lucru se repetă recursiv sourcedir în directorul curent ca subdirector sourcedir/. Nu va atinge fișierele care sunt deja acolo și au același marcaj temporal / conținut. The -n opțiunea înseamnă că este doar o rulare uscată, astfel încât să puteți vedea ce ar face (împreună cu -v pentru verboroasă). Odată ce ești mulțumit de ceea ce ar face, rulează-l fără -n:

rsync -av /some/where/sourcedir .

Puteți apela asta în mod repetat; daca nu mai face nimic, e bine si cu adevarat terminat.

Poti de asemenea șterge fișierele care nu se mai află în arborele directorului sursă cu --șterge:

rsync -av --delete /some/where/sourcedir .

Dacă adăugați o bară oblică finală la calea sursă, aceasta nu creează un sourcedir/ subdirectorul de pe destinație, dar îl copiază direct în acel subdirector. Impreuna cu --șterge, creează o copie 1:1 a acelui arbore în directorul curent, de asemenea ştergerea tot ceea ce nu este în subarborele sursă:

rsync -av --delete /some/where/sourcedir/ .

Din nou, adaugă -n pentru a vedea ce ar do. În general, vă recomand să utilizați întotdeauna -n mai întâi pentru a confirma că va face ceea ce vrei tu să facă.

Există o mulțime de alte opțiuni (cum ar fi --exclude=); vedea om rsync.

Puncte:0
drapel cn

Puteți realiza acest lucru cu găsi si nici cp cu --părinţi, care necesită totuși ca ../ținta să existe.

(sursă cd încorporată; găsiți -type f \
  -newermt '18 dec 2020' -exec cp --parents -at ../target {} +)

A doua opțiune folosește cpio care este mai performant. În timp ce exemplul anterior folosește CD pentru a elimina punct de start înainte de a copia, realizăm acest lucru cu a -printf directivă şi cpio -D. Și acest lucru nu va necesita o țintă existentă înainte de copiere.

găsi sursa/ -mindepth 1 -depth -type f \
  -newermt '18 dec 2020' -printf %P\0 | cpio -0 -pvdm -D sursă/ țintă

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.