• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >ruby > Ruby实现的一个强大的批量删除文件脚本分享

Ruby实现的一个强大的批量删除文件脚本分享

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了ruby脚本,ruby脚本语言,ruby自动化脚本,如何运行ruby文件,ruby 文件是什么等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

最近打包服务器上的apk包又增多了,每次手动rm操作过于麻烦,于是花了几分钟写了一个可以对指定目录下根据最后修改时间和通配符匹配进行批量删除的脚本。将这个脚本加入crontab中之后,以后就再也不用担心多余的安装包占用磁盘空间了。

简短的代码

#!/usr/bin/env ruby
# encoding: utf-8
#Usage: ruby removeOldFiles.rb "dest_file_pattern" days_ago
destFilePattern= ARGV[0]
daysAgo= ARGV[1]
edenTime = Time.now.to_i - daysAgo.to_i * 86400
Dir[destFilePattern].each{|child|
    system "rm -rfv #{child}"   if (File.mtime(child).to_i < edenTime)
}
</div>

如何使用

使用起来很简单,使用规则如下
ruby removeOldFiles.rb "dest_file_pattern" days_ago
</div>

举个例子,比如我们想删除/tmp目录下的,所有最后修改时间为3天前的apk文件,我们只需要这样执行。

ruby removeOldFiles.rb "/tmp/*.apk" 3
</div>

为什么第一个参数使用双引号

第一个参数为包含通配符的路径,在shell中存在一个工具就是glob会将包含通配符的路径匹配到具体的文件,比如这样的一段代码。

!/usr/bin/env ruby
# encoding: utf-8
puts ARGV.length
ARGV.each do |a|
    puts "Argument: #{a}"
end
</div>

我们传入含有通配符的路径参数,得到的结果就是glob匹配后的文件名(前提是通配符可以匹配到文件)。

10:41 $ ruby test.rb *.txt
2
Argument: abc.txt
Argument: def.txt
</div>
为了避免进行glob操作,需要对包含通配符的路径参数使用双引号标记。

10:41 $ ruby test.rb "*.txt"
1
Argument: *.txt
</div>

所以在使用脚本时第一个参数一定要使用双引号。

如何遍历文件包含子目录内的

比如我们想遍历/tmp/abc/def.txt 我们可以使用/tmp/**/.txt即可

</div>

您可能想查找下面的文章:

  • 优化Ruby脚本效率实例分享
  • ruby写扫描当前网页所有url的脚本
  • ruby写扫描当前网页所有url的脚本
  • Ruby编写HTML脚本替换小程序的实例分享
  • 编写Ruby脚本来对Twitter用户的数据进行深度挖掘
  • 使用Ruby编写脚本进行系统管理的教程
  • Ruby实现的删除已经合并的git分支脚本分享
  • Ruby实现的一个强大的批量删除文件脚本分享
  • Ruby和Shell脚本实现判断成绩及格功能

相关文章

  • Ruby使用REXML库来解析xml格式数据的方法
  • 在操作系统上安装Ruby解释器的教程
  • 二十分钟 教你Ruby快速入门 图文教程第1/4页
  • Ruby实现邮件主动推送触发程序
  • ruby 实变量
  • ruby 类常量 解析
  • 举例讲解Ruby中require的使用方法
  • Ruby中的循环语句的用法教程
  • Ruby类继承、抽象类、类拓展混入、代理类实例
  • Ruby中遍历目录的简洁方法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • rails常用数据库查询操作、方法浅析
    • ruby 实变量
    • Ruby中的变量学习总结
    • Ruby中的字符串编写示例
    • Ruby简洁学习笔记(一):字符串、数字、类和对象
    • Ruby实现二分搜索(二分查找)算法的简单示例
    • Ruby学习笔记一
    • 分析 rudy 类
    • ruby 简单例子
    • 在Mac OS X下安装Ruby运行环境的详细步骤

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有