IT blok - Michal Šika

kutilovo živobytí

Práce se soubory staršími než…

Pokud chceme přes příkazovou řádku linuxu přesunout, zkopírovat či smazat soubory v adresáři, které jsou starší než např. hodinu, můžeme použít návod z tohoto článku.

Máme např. soubory v adresáři

/srv/data/prod/remote/zip_prac

a chceme z nich vybrat ty, které jsou starší než 1 hodina a následně je přesunout do adresáře

/srv/data/prod/local/zip_tmp

, nebo je zkopírovat či smazat.

Použijeme k tomu tyto příkazy:

– pro výpis souborů

$ find /srv/data/prod/remote/zip_prac/ -type f -mmin +60

– pro přesun souborů

$ find /srv/data/prod/remote/zip_prac/ -type f -mmin +60 -exec mv '{}' /srv/data/prod/local/zip_tmp/ ;

– pro zkopírování souborů (stejné jako předchozí, jen se použije cp namísto mv)

$ find /srv/data/prod/remote/zip_prac/ -type f -mmin +60 -exec cp '{}' /srv/data/prod/local/zip_tmp/ ;

– pro smazání souborů

$ find /srv/data/prod/remote/zip_prac/ -type f -mmin +60 -exec rm '{}' ;

Důležité je zadat jako typ „f„, což je typ „file“ aby byly vybrány opravdu soubory a ne třeba adresáře apod.

Jestli se nacházíme v shellu buď v cílové nebo zdrojové složce zadáme namísto cesty „.“
Tedy:

$ find . -type f -mmin +60 -exec mv '{}' /srv/data/prod/local/zip_tmp/ ;

Pokud se nacházíme v adresáři /srv/data/prod/remote/zip_prac.

Je to jednoduché a intuitivní. Příkaz „find“ má spoustu možností použití. A v některém dalším článku si ukážeme další.

Michal Šika