麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Ruby > 正文

Ruby實現的一個強大的批量刪除文件腳本分享

2020-10-29 19:42:41
字體:
來源:轉載
供稿:網友

最近打包服務器上的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)
}

如何使用

使用起來很簡單,使用規則如下

復制代碼 代碼如下:

ruby removeOldFiles.rb "dest_file_pattern" days_ago

舉個例子,比如我們想刪除/tmp目錄下的,所有最后修改時間為3天前的apk文件,我們只需要這樣執行。

復制代碼 代碼如下:

ruby removeOldFiles.rb "/tmp/*.apk" 3

為什么第一個參數使用雙引號

第一個參數為包含通配符的路徑,在shell中存在一個工具就是glob會將包含通配符的路徑匹配到具體的文件,比如這樣的一段代碼。

復制代碼 代碼如下:

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

我們傳入含有通配符的路徑參數,得到的結果就是glob匹配后的文件名(前提是通配符可以匹配到文件)。

復制代碼 代碼如下:

10:41 $ ruby test.rb *.txt
2
Argument: abc.txt
Argument: def.txt

為了避免進行glob操作,需要對包含通配符的路徑參數使用雙引號標記。

復制代碼 代碼如下:

10:41 $ ruby test.rb "*.txt"
1
Argument: *.txt

所以在使用腳本時第一個參數一定要使用雙引號。

如何遍歷文件包含子目錄內的

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产一区二区三区在线视频 | 国av在线| 色交视频 | 久久成人激情视频 | 成人短视频在线观看 | 黄色大片网 | 狠狠色成色综合网 | 国产精品久久久久久久久久 | 精品成人国产在线观看男人呻吟 | 国产精品久久久久久久久久 | 亚洲电影免费观看国语版 | 精品一区二区久久久久久久网精 | 久久精品国产99国产精品澳门 | 欧美成人三级视频 | 色婷婷一区二区三区 | 中国字幕av| 91在线观看 | 欧美一级黄 | 国产免费久久久久 | 亚洲最大久久 | 精品久久久久久久久久中出 | 国产激情视频在线 | 精品黑人一区二区三区国语馆 | 国产一级在线看 | 午夜精品久久久久久久爽 | 天堂成人一区二区三区 | 高清做爰免费无遮网站挡 | 成人免费视频视频在线观看 免费 | 日本成年网 | 免费永久看羞羞片网站入口 | hd性videos意大利复古 | 91短视频版高清在线观看www | 人人看人人艹 | 黄色的视频在线观看 | 国产成人午夜精品 | 亚洲免费在线看 | 国产成人在线免费观看视频 | 久久精品一区二区三区四区五区 | 欧美视频一区二区三区 | 欧美精品a∨在线观看不卡 午夜精品影院 | cosplay裸体福利写真 |