pentru tonti :: cautare, copiere, mutare fisiere modificate intr-un interval de timp definit
Catalin Ticleanu Catalin T. |
Title | Cautare, copiere, mutare fisiere modificate intr-un interval de timp definit |
Tags | linux, find, cp, mv, ls, find and move files | |
Desc. | Linux, cautare si procesare in masa (bulk) fisiere modificate intr-un interval de timp (intre doua date calendaristice) | |
Code | KBCR0007 v1.0 | |
Date | 9 februarie 2016 |
Intrebarile la care veti afla raspunsul in acest tutorial sunt:
a) Cum pot afla ce fisiere care au fost modificate in folderul FOLDER, intre DATA_SCAN_START si DATA_SCAN_FINAL (intre doua date calendaristice)?
a1) Cum pot procesa aceste fisiere in masa (bulk), de exemplu sa fac o copie a acestora, sa le mut sau sa le sterg ?
Pentru aceste operatiuni avem la dispozitie programul find, disponibil nativ in orice distributie de Linux, fie ea de tip desktop sau server.
Considerente privind formatul de data introdus.
DATA_SCAN_START/FINAL poate fi scrisa in multe moduri acceptate de linux, pentru exemplul de astazi vom folosi formatul:
"YYYY-MM-DD HH24:MI" (ex: 2016-02-09 10:00) si/sau formatul "YYYY-MM-DD" (ex: 2016-02-09) care este un shortcut pentru 2016-02-09 00:00
Primul lucru care trebuie facut este navigare in FOLDER, mai exact in locatia in care se doreste cautarea/procesarea fisierelor.
$ cd /cale/catre/FOLDER
Afisare (listing-ul) fisiere modificare intr-un interval de timp (intre doua date calendaristice)
$ find -newermt "2016-02-08" ! -newermt "2016-02-09 23:59" -ls
Procesare fisiere modificate intr-un interval de timp
Deoarece metodele de procesare sunt specifice nevoii curente a utilizatorului, am sa ofer doar cateva exemple de baza, comune
Copiere fisiere modificate intr-un interval de timp, intr-un folder numit backup
$ find -newermt "2016-02-08" ! -newermt "2016-02-09" -exec cp {} backup \;
unde, cp este comanda de copiere iar backup este numele folderului unde vor fi copiate fisierele;
Copiere fisiere modificate intr-un interval de timp, intr-un folder numit backup, pastrand structura de foldere existenta
$ find -newermt "2016-02-08" ! -newermt "2016-02-09" -exec cp --parents \{\} backup \;
unde, cp este comanda de copiere, backup este numele folderului unde vor fi copiate fisierele iar --parents specifica pastrarea structurii de foldere;
Mutare fisiere modificate intr-un interval de timp, intr-un folder numit incubator
$ find -newermt "2016-02-08" ! -newermt "2016-02-09" -exec mv {} incubator \;
unde, mv este comanda de mutare iar incubator este numele folderului unde vor fi mutate fisierele;
Spor la experimentat :)