找回密码
 立即注册
搜索
查看: 1293|回复: 19

[软件] 求个删文件的软件。

[复制链接]
     
发表于 2013-9-26 17:23 | 显示全部楼层 |阅读模式
能按最后修改日期来删除的,比如删除300天以前的所有文件。
能导出报告。
觉得这个做起来应该很简单吧,就一个判断··
但实在搜不到类似的软件。

FOR和IF的批处理太慢了。两三千万个文件删了一下午也没删完。。。
回复

使用道具 举报

     
发表于 2013-9-26 17:27 | 显示全部楼层
本帖最后由 四点 于 2013-9-26 17:32 编辑

find dir -ctime +300 -exec rm -f {} \;

win的话直接按最后修改时间排序呢?
回复

使用道具 举报

     
发表于 2013-9-26 17:42 | 显示全部楼层
我总感觉win的“文件建立时间”不准……
回复

使用道具 举报

     
 楼主| 发表于 2013-9-26 17:44 | 显示全部楼层
四点 发表于 2013-9-26 17:27
find dir -ctime +300 -exec rm -f {} \;

win的话直接按最后修改时间排序呢?

少文件可以排序。
多文件和多文件夹不行。
回复

使用道具 举报

     
发表于 2013-9-26 20:38 来自手机 | 显示全部楼层
Realplayer 发表于 2013-9-26 17:42
我总感觉win的“文件建立时间”不准……

很容易改是吧。。。
回复

使用道具 举报

     
发表于 2013-9-26 21:49 | 显示全部楼层
本帖最后由 dodolee 于 2013-9-26 21:56 编辑

windows 可以用 cygwin
回复

使用道具 举报

     
 楼主| 发表于 2013-9-26 21:56 | 显示全部楼层
本帖最后由 梓 于 2013-9-26 21:59 编辑
dodolee 发表于 2013-9-26 21:49
windows 可以用 cygwin

……

删几个文件而已。。有必要装个开发环境么。。
回复

使用道具 举报

     
发表于 2013-9-26 22:04 | 显示全部楼层
这东西默认安装没有几 MB 吧,考虑到方便的脚本功能,最好常备啊。
回复

使用道具 举报

发表于 2013-9-26 22:06 | 显示全部楼层
跟据上次蛋痛的经验,有找的时间,动手写一个花的时间好像也差不多...批量按规则改文件名,删文件啥的...
回复

使用道具 举报

     
发表于 2013-9-26 22:08 | 显示全部楼层
用Powershell也没差的啦
  1. ls -r | where LastWriteTime -LT ([System.DateTime]::Now).AddDays(-300) | foreach { rm $_.FullName;$_.FullName }
复制代码
回复

使用道具 举报

     
 楼主| 发表于 2013-9-26 22:11 | 显示全部楼层
eggplant 发表于 2013-9-26 22:06
跟据上次蛋痛的经验,有找的时间,动手写一个花的时间好像也差不多...批量按规则改文件名,删文件啥的... ...



正因为批处理太慢我才找软件的。。
批处理搞几千个文件可以。。
几千万个文件慢死。。

回复

使用道具 举报

     
发表于 2013-9-26 22:13 | 显示全部楼层
当年就是因为没有 find 这类标准 unix 工具,果断放弃了 powershell,虽说管道里传对象听起来似乎很先进……
回复

使用道具 举报

     
发表于 2013-9-26 22:15 | 显示全部楼层
本帖最后由 neverer 于 2013-9-26 22:19 编辑

本地的?直接按时间排序,选中,删除可以吗?

:L是几千几万还是几千万……几千万这数量也太可怕了
回复

使用道具 举报

     
 楼主| 发表于 2013-9-26 22:19 | 显示全部楼层
iyomumx 发表于 2013-9-26 22:08
用Powershell也没差的啦


不太懂ps的语法,报错如图。
回复

使用道具 举报

     
 楼主| 发表于 2013-9-26 22:20 | 显示全部楼层
neverer 发表于 2013-9-26 22:15
本地的?直接按时间排序,选中,删除可以吗?

是几千几万还是几千万……几千万这数量也太可怕了

大概两千四百万左右。。
回复

使用道具 举报

     
发表于 2013-9-26 22:23 | 显示全部楼层
梓 发表于 2013-9-26 22:19
不太懂ps的语法,报错如图。
  1. ls -r | where {$_.LastWriteTime -LT ([System.DateTime]::Now).AddDays(-300)} | % {rm $_}
复制代码
你试试这个
回复

使用道具 举报

     
发表于 2013-9-26 22:25 | 显示全部楼层
  1. ls -r | where {$_.LastWriteTime -LT ([System.DateTime]::Now).AddDays(-300)} | rm
复制代码
这个应该更快点
回复

使用道具 举报

     
 楼主| 发表于 2013-9-26 22:33 | 显示全部楼层
infinte 发表于 2013-9-26 22:25
这个应该更快点

17L这个测试可以实现。
我去实际环境中跑一下看一下速度。
回复

使用道具 举报

     
 楼主| 发表于 2013-9-26 22:34 | 显示全部楼层
infinte 发表于 2013-9-26 22:25
这个应该更快点

另外这个可以把日志存下来么。就是具体删了哪些文件
回复

使用道具 举报

     
发表于 2013-9-26 22:36 | 显示全部楼层
梓 发表于 2013-9-26 22:34
另外这个可以把日志存下来么。就是具体删了哪些文件

你去掉最后的 “| rm” 就能打印出要删的文件。当然,去掉 rm 就不执行删除动作
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-9-10 11:35 , Processed in 0.117861 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表