Jak zkopirovat soubory starsi nez 120 dnu
Ivo Panacek
ivop na jlabs.cz
Čtvrtek Listopad 4 11:58:31 CET 2004
Kovar Jan wrote:
> Dobry den.
>
> Potrebuju nakopirovat strukturu souboru, ktere jsou starsi nez 120 dnu do
> adresare /data2/EEE/. Tak nejak jsem se dopracoval az sem:
>
> find ./ -mtime -120 -exec cp -Rv {} /data2/EEE/ \;
>
> Vysledkem je, ze v adresari /data2/EEE/ mi vytvori strukturu adresaru,
> nakopiruje tam soubory, ale zaroven je jeste soupne znovu vsechny primo do
> toho adresare /data2/EEE/. Co delam spatne? (SLES 7)
To asi takto jednoduse neudelate.
find jede rekurzivne => najde postupne vsechny souboury a adresare, ktere
se zmenily. A kazdy z nalezenych tam rekurzivne kopirujete =>
1) jde-li o adresar, tak ho tam zkopirujete rekurzivne, tj. udela se tam podstruktura
ale nasledne find POKRACUJE a prohleda i ten adresar, takze se tam jeho obsah sotane taky
2) jde-li o soubor, zkopiruje ho tam primo
Potrebujete tedy neco jako (neladil jsem, pisu z hlavy => specialne ty dva prikazy v -exec nevim):
find . -type f -mtime -120 -exec ( mkdir -p /data2/EEE/`dirname "{}"` 2>/dev/null ; cp -av "{}" /data2/EEE/`dirname "{}"` ) \;
coz je osklive a resil bych to spis find ... | while read FILE; do ...
--
S pozdravem
Ivo Panáček
Další informace o konferenci Linux