Hello! On Tue, 17 Feb 2015 at 21:38:46 (+0200), Vladislav V. Prodan wrote:
> > > ls $i | grep snap-\*\.\*\.\*\.jpg | awk 'NR%5!=1' | xargs rm > > А "ls snap-*.*.*.jpg" даёт отличный от "ls $i | grep snap-\*\.\*\.\*\.jpg" > > результат? > Первый вариант: > ... > for i in `find $dir -type d` > do > cd $i || continue; > ls snap-*.*.*.jpg > done; > И вот тут дважды ls вызывается... > # ./clear-video-storage-3.sh > ls: snap-*.*.*.jpg: No such file or directory > snap-16.00.00.jpg snap-16.12.00.jpg snap-16.24.00.jpg > snap-16.36.00.jpg snap-16.48.00.jpg > snap-16.00.04.jpg snap-16.12.04.jpg snap-16.24.04.jpg > snap-16.36.04.jpg snap-16.48.04.jpg > snap-16.00.08.jpg snap-16.12.08.jpg snap-16.24.08.jpg > snap-16.36.08.jpg snap-16.48.08.jpg > ... > Второй вариант: > ... > for i in `find $dir -type d` > do > cd $i || continue; > ls $i | grep -c "^snap-*.*.*.jpg" > done; > # ./clear-video-storage-3.sh > 0 > 900 Так у Вас в обоих вариантах ls дважды вызывается, поскольку в цикл попадает _две_ директории: собственно сама $dir и поддиректория $dir/$i Замените "find $dir -type d" на "find $dir -mindepth 1 -type d" Я бы даже ещё и "-maxdepth 1" использовал - чтобы избежать неожиданностей =) -- George L. Yermulnik [YZ-RIPE]
