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