分页: 1 / 1

求助:一个备份的问题

发表于 : 2010-01-15 13:36
pressahead
当一个目录下的文件的数目大于20个的时候,就删除最老的那些,怎么用脚本实现?

Re: 求助:一个备份的问题

发表于 : 2010-01-21 5:31
cosechy
ls -t|{ head -n 20>/dev/null;后边看着办;}
随便写的
不适合文件名有换行符的情况。。。。。。。。。。

Re: 求助:一个备份的问题

发表于 : 2010-01-21 11:29
keky

代码: 全选

nu=`ls -l | wc -l`
if(($nu > 20 ))
then
    for file in `ls -t | tail -n 20`
    do
        rm $file
    done
fi

Re: 求助:一个备份的问题

发表于 : 2010-01-21 15:49
c\nc
这个呢

代码: 全选

ls -t1 | tail -n+21 | xargs -I '{}' rm -i '{}'

Re: 求助:一个备份的问题

发表于 : 2010-01-22 7:59
cosechy
理论上说要是不用类似find -exec的东西的话,就处理不了带换行符的文件名
虽然我没见过哪个有意义文件用这种文件名
不过就算这样也至少把空格处理一下吧,这个很常用

Re: 求助:一个备份的问题

发表于 : 2010-01-22 13:33
c\nc
cosechy 写了:理论上说要是不用类似find -exec的东西的话,就处理不了带换行符的文件名
虽然我没见过哪个有意义文件用这种文件名
不过就算这样也至少把空格处理一下吧,这个很常用
换行和空格的问题不算问题,find 有 -print0 参数,xargs 有 -0 参数。

Re: 求助:一个备份的问题

发表于 : 2010-01-23 20:05
pressahead
采用了三楼的答案,感觉可读性好。多谢楼上的各位!

Re: 求助:一个备份的问题

发表于 : 2010-01-25 4:33
cosechy
三楼前面加IFS="
"可以处理有空格的情况