[ igorkr @ 07.01.2021. 23:43 ] @
Imam Dir1 sa strukturom kao u nastavku. U Dir1 imam podmape za poslednje 3 godine. Svaka od njih ima podmapu za svaki mesec, svaki mesec ima podmapu za svaki dan, svaki dan ima podmapu za svaki sat i svaka mapa hour=xx sadraži po jedan file.
Kako u bash mogu da kopiram samo datoteke iz direktorijume gde je hour=23, svih dana, svih meseca in svih godina v Dir2? Struktura poddirektorijuma u Dir2 da ostane ista kao kod Dir1, tako da sadraži samo hour=22 podmape za svih dana, svih meseca in sve godine.

Hvala.

Dir1:
-year=2019
--month=01
---day=01
----hour=00
-----file_23232323asds.txt
----...
----hour=23
-----file_d2dfwed23asds.txt
---...
---day=31
----hour=00
-----file_d2dfwdsd23asds.txt
----...
----hour=23
-----file_dswfwed23asds.txt
--...
--month=12
---day=01
----hour=00
-----file_ewrwfrerasds.txt
----...
----hour=23
-----file_fvfstgfdfdsftxt
---...
---day=31
----hour=00
-----file_4rwejfwwf.txt
----...
----hour=23
-----file_qwewqasds.txt
-year=2020
--month=01
---day=01
----hour=00
-----file_r3eeddds.txt
----...
----hour=23
-----file_dewqeqw3asds.txt
---...
---day=31
----hour=00
-----file_ywkdwskdskd.txt
----...
----hour=23
-----file_eeasds.txt
--...
--month=12
---day=01
----hour=00
-----file_pd0foeikwfetxt
----...
----hour=23
-----file_ererererds.txt
---...
---day=31
----hour=00
-----file_wee3asds.txt
----...
----hour=23
-----file_wewewewsds.txt
-year=2021
--month=01
---day=01
----hour=00
-----file_dwdwqdsdsds.txt
----...
----hour=23
-----file_dsdsddsdsds.txt
---...
---day=07
----hour=00
-----file_dsfdsfsdfds.txt
----...
----hour=22
-----file_dsdsdsdsasds.txt
[ bokinet @ 08.01.2021. 08:54 ] @
Petlja, generisanje putanje do postojeceg file, opcija: provera da li file postoji koji se kopira a za koji je generisana putanja, kopiranje file na generisano ili staticko odrediste.

Tip: 12 mesec u godini : 365 dana u godini : jedan dan ima 24h : svaki sat ima 60 min.
[ Časlav Ilić @ 08.01.2021. 11:50 ] @
Ako je to praktičan problem, može naredbom rsync:
Code:

rsync -amv Dir1/ Dir2/ --include '*/*/*/23/*' --exclude '*/*/*/*/*'

Ovako pod pretpostavkom da imena direktorijuma ne sadrže zaista hour=..., već samo brojeve, npr. Dir1/2020/05/25/23. Inače prvi obrazac treba da glasi '*/*/*/hour=23/*'.
[ B3R1 @ 08.01.2021. 11:51 ] @
Ne treba ti skript, mozes to i u jednoj liniji:

cd Dir1; find . -regex '.*/hour=23/.*' | tar cvf - -T- | ( cd ../Dir2; tar xvf - )