Livejournal
Log in
Post
Friends
My journal
korp_mac
in
ru_linux
Коллеги, подсобите написать скрипт по поиску файлов на bash
Feb 27, 2014 09:36
Здравствуйте (
Read more...
)
bash
Leave a comment
Comments 12
eking_go
February 27 2014, 10:42:34 UTC
Если нужны только директории - то "-type d"
директории 20140221 - точно создаются не заранее? посмотрите их дату создания/модификации. Кстати, может их искать как раз по дате модификации?
" он почему то ! -name 'CAM3_TV-IP501P' не воспринимает"
-not -name 'CAM3_TV-IP501P'
Reply
korp_mac
February 27 2014, 10:47:53 UTC
Ну это не сильно меняет ситуацию в общем то, он всё-равно при find /home/videoadmin/data/ -maxdepth 3 -type d -ctime +5 находит (
...
)
Reply
eking_go
February 27 2014, 10:54:40 UTC
stat /home/videoadmin/data/10.15.4.237/2014022*
?
Reply
korp_mac
February 27 2014, 10:56:36 UTC
stat /home/videoadmin/data/10.15.4.237/2014022 (
...
)
Reply
Thread 6
dil
February 27 2014, 10:50:49 UTC
# find /home/videoadmin/data/ -maxdepth 3 -mindepth 2
/home/videoadmin/data/10.15.4.236/20140221
/home/videoadmin/data/10.15.4.236/20140221/07
/home/videoadmin/data/10.15.4.236/20140221/04
/home/videoadmin/data/10.15.4.236/20140221/02
/home/videoadmin/data/10.15.4.237/20140221
/home/videoadmin/data/10.15.4.237/20140221/07
/home/videoadmin/data/10.15.4.237/20140221/04
/home/videoadmin/data/10.15.4.237/20140221/02
А если их все равно рекурсивно удалять, то
# find /home/videoadmin/data/ -maxdepth 2 -mindepth 2
/home/videoadmin/data/10.15.4.236/20140221
/home/videoadmin/data/10.15.4.237/20140221
И попробуйте вместо ctime использовать mtime.
Reply
korp_mac
February 27 2014, 10:56:12 UTC
Похоже find /home/videoadmin/data/ -maxdepth 2 -mindepth 2 -type d -mtime +4 это как раз то что мне нужно, спасибо большое
Reply
ping_f
February 27 2014, 11:53:43 UTC
А если добавить -exec rm -r {} \ то и удалять будет в этой же строчке.
Reply
korp_mac
February 27 2014, 11:54:11 UTC
Да с этим то проблем нет :)
Reply
aabp
February 27 2014, 12:28:26 UTC
ещё искомые каталоги можно выкусить так
$ ls -1
20140221
20140222
20140223
20140224
20140225
20140226
20140227
$ ls | while read A; do if [ $A -lt `date --date '-5 days' +%Y%m%d` ]; then echo $A; fi; done
20140221
Reply
aabp
February 27 2014, 12:34:27 UTC
а сам скрипт будет выглядеть примерно так:
cd /home/videoadmin/data/
ls | grep -v "то что не обрабатываем"| while read DDIR; do cd $DDIR; ls | while read A; do if [ $A -lt `date --date '-5 days' +%Y%m%d` ]; then rm -rf $A; fi; done; cd ../; done
Reply
Leave a comment
Up
Comments 12
директории 20140221 - точно создаются не заранее? посмотрите их дату создания/модификации. Кстати, может их искать как раз по дате модификации?
" он почему то ! -name 'CAM3_TV-IP501P' не воспринимает"
-not -name 'CAM3_TV-IP501P'
Reply
Reply
?
Reply
Reply
# find /home/videoadmin/data/ -maxdepth 3 -mindepth 2
/home/videoadmin/data/10.15.4.236/20140221
/home/videoadmin/data/10.15.4.236/20140221/07
/home/videoadmin/data/10.15.4.236/20140221/04
/home/videoadmin/data/10.15.4.236/20140221/02
/home/videoadmin/data/10.15.4.237/20140221
/home/videoadmin/data/10.15.4.237/20140221/07
/home/videoadmin/data/10.15.4.237/20140221/04
/home/videoadmin/data/10.15.4.237/20140221/02
А если их все равно рекурсивно удалять, то
# find /home/videoadmin/data/ -maxdepth 2 -mindepth 2
/home/videoadmin/data/10.15.4.236/20140221
/home/videoadmin/data/10.15.4.237/20140221
И попробуйте вместо ctime использовать mtime.
Reply
Reply
Reply
Reply
$ ls -1
20140221
20140222
20140223
20140224
20140225
20140226
20140227
$ ls | while read A; do if [ $A -lt `date --date '-5 days' +%Y%m%d` ]; then echo $A; fi; done
20140221
Reply
cd /home/videoadmin/data/
ls | grep -v "то что не обрабатываем"| while read DDIR; do cd $DDIR; ls | while read A; do if [ $A -lt `date --date '-5 days' +%Y%m%d` ]; then rm -rf $A; fi; done; cd ../; done
Reply
Leave a comment