国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Ruby > 正文

Ruby實現批量刪除文件腳本的方法

2020-02-24 15:38:15
字體:
來源:轉載
供稿:網友

Ruby腳本是為批量修改傳統文件而編寫的,不幸的是,腳本的性能非常差,批量重命名的速度其實非常的慢,那么Ruby實現批量刪除文件腳本的方法大家都了解嗎?別著急,武林技術頻道帶你進入下文了解。

簡短的代碼

?

復制代碼 代碼如下:

#!/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即可

以上就是關于Ruby實現批量刪除文件腳本的方法,如果你還想了解更多技術信息,你可以來關注武林技術頻道的知識。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 邵东县| 南宫市| 营口市| 苏尼特左旗| 酒泉市| 塘沽区| 浦东新区| 南靖县| 澎湖县| 屏东市| 建湖县| 汉源县| 游戏| 亚东县| 威宁| 全州县| 迁安市| 新干县| 江津市| 呈贡县| 乡宁县| 江孜县| 全南县| 南木林县| 永安市| 道孚县| 铜陵市| 泸州市| 沙河市| 常山县| 洛宁县| 青龙| 和硕县| 汤原县| 武胜县| 兴文县| 武夷山市| 西盟| 广饶县| 尼勒克县| 额尔古纳市|