分页: 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="
"可以处理有空格的情况