求助:一个备份的问题

sh/bash/dash/ksh/zsh等Shell脚本
回复
pressahead
帖子: 4
注册时间: 2006-11-25 19:58

求助:一个备份的问题

#1

帖子 pressahead » 2010-01-15 13:36

当一个目录下的文件的数目大于20个的时候,就删除最老的那些,怎么用脚本实现?
cosechy
帖子: 82
注册时间: 2008-03-06 4:56

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

#2

帖子 cosechy » 2010-01-21 5:31

ls -t|{ head -n 20>/dev/null;后边看着办;}
随便写的
不适合文件名有换行符的情况。。。。。。。。。。
头像
keky
帖子: 231
注册时间: 2007-12-20 15:08
来自: harbin
联系:

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

#3

帖子 keky » 2010-01-21 11:29

代码: 全选

nu=`ls -l | wc -l`
if(($nu > 20 ))
then
    for file in `ls -t | tail -n 20`
    do
        rm $file
    done
fi
Keep trying...never say never. blog: H。U。C

代码: 全选

        .--.
       |o_o |
       |:_/ |           < Hello Girl >
      //   \ \             ------------
     (|     | )
    /'\_   _/`\
    \___)=(___/
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

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

#4

帖子 c\nc » 2010-01-21 15:49

这个呢

代码: 全选

ls -t1 | tail -n+21 | xargs -I '{}' rm -i '{}'
cosechy
帖子: 82
注册时间: 2008-03-06 4:56

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

#5

帖子 cosechy » 2010-01-22 7:59

理论上说要是不用类似find -exec的东西的话,就处理不了带换行符的文件名
虽然我没见过哪个有意义文件用这种文件名
不过就算这样也至少把空格处理一下吧,这个很常用
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

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

#6

帖子 c\nc » 2010-01-22 13:33

cosechy 写了:理论上说要是不用类似find -exec的东西的话,就处理不了带换行符的文件名
虽然我没见过哪个有意义文件用这种文件名
不过就算这样也至少把空格处理一下吧,这个很常用
换行和空格的问题不算问题,find 有 -print0 参数,xargs 有 -0 参数。
pressahead
帖子: 4
注册时间: 2006-11-25 19:58

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

#7

帖子 pressahead » 2010-01-23 20:05

采用了三楼的答案,感觉可读性好。多谢楼上的各位!
cosechy
帖子: 82
注册时间: 2008-03-06 4:56

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

#8

帖子 cosechy » 2010-01-25 4:33

三楼前面加IFS="
"可以处理有空格的情况
回复