分页: 2 / 3
Re: 前两天笔试遇到一个题,怎么删除目录下10万个文件?小弟太菜,求高手指导下
发表于 : 2013-10-31 10:26
由 leofun
peteryeh64 写了:...我只知道format...rm -r...rm -f...
那我google下。。。谢谢哈
Re: 前两天笔试遇到一个题,怎么删除目录下10万个文件?小弟太菜,求高手指导下
发表于 : 2013-10-31 10:27
由 leofun
aerofox 写了:如果原题就是这样的,那还真不好整,必须分多情况,例如:
如果目录下有且只有1万个文件个非隐藏的普通文件,那么可以 rm * 或者 ls -Q | xargs rm
如果目录下有 10001 个文件,删除除了 important.txt 以外的文件,那么在 zsh 中可以 rm *~important.txt
如果目录下有 5 万个文件,删除其中1万个文件,且没什么规律,那么只好干苦力了。
额。。。没记错的话就是这样子,没有明确是些什么文件。。。

Re: 前两天笔试遇到一个题,怎么删除目录下10万个文件?小弟太菜,求高手指导下
发表于 : 2013-10-31 10:33
由 leofun
oneleaf 写了:对于超多文件的目录,一般用 find , rsync 的用法比较奇特,很少这样干。
我想 或许就是考下 命令吧
Re: 前两天笔试遇到一个题,怎么删除目录下10万个文件?小弟太菜,求高手指导下
发表于 : 2013-10-31 11:43
由 youzhiyili
mark
Re: 前两天笔试遇到一个题,怎么删除目录下10万个文件?小弟太菜,求高手指导下
发表于 : 2013-11-01 18:25
由 needle
问题是这些个文件有什么规律, 有什么要求没有, 比如文件名的规律, 文件大小, 文件类型等~
这么笼统, 答案不就很简单么, 直接删除父目录不就可以了么~
10万个文件, find 也就几分钟的事~
如果没有规律, 建议建立文件列表索引到一个文本里.
再用vim剥离出要删除的文件列表.
啊, 又学到一个, ls 还有 -Q 选项啊!
我以为ls 我看了个遍~, 看来还有一些不理解啊~, 不知道其适用环境啊~
Re: 前两天笔试遇到一个题,怎么删除目录下10万个文件?小弟太菜,求高手指导下
发表于 : 2013-11-07 6:58
由 弄钱潮
14 ,15楼说的对,考的应该是怎么对付大量的文件。有时候多到用find都得想很多办法才行。
Re: 前两天笔试遇到一个题,怎么删除目录下10万个文件?小弟太菜,求高手指导下
发表于 : 2013-12-29 9:51
由 iceveil
问题很笼统啊 直接rm -rf 目录/* 就可以吧 没有明确指出需要考虑系统负载吧
Re: 前两天笔试遇到一个题,怎么删除目录下10万个文件?小弟太菜,求高手指导下
发表于 : 2013-12-29 11:16
由 枫叶饭团
我的办法一直是ls *|xargs rm
IO负载超高的说。。。
Re: 前两天笔试遇到一个题,怎么删除目录下10万个文件?小弟太菜,求高手指导下
发表于 : 2013-12-29 14:59
由 lilydjwg
我前两天干了这个事,btrfs 上十几万个小文件,rsync 了个空目录过去,很快就只剩下目录本身了 =w=
Re: 前两天笔试遇到一个题,怎么删除目录下10万个文件?小弟太菜,求高手指导下
发表于 : 2013-12-29 18:02
由 zhw2101024
lilydjwg 写了:我前两天干了这个事,btrfs 上十几万个小文件,rsync 了个空目录过去,很快就只剩下目录本身了 =w=
敢问这个“很快”是多长时间?有监控io和内存负载吗
一直没有机会做这个事,一大遗憾
Re: 前两天笔试遇到一个题,怎么删除目录下10万个文件?小弟太菜,求高手指导下
发表于 : 2013-12-29 18:32
由 lilydjwg
zhw2101024 写了:lilydjwg 写了:我前两天干了这个事,btrfs 上十几万个小文件,rsync 了个空目录过去,很快就只剩下目录本身了 =w=
敢问这个“很快”是多长时间?有监控io和内存负载吗
一直没有机会做这个事,一大遗憾
没。大约几秒吧,最多十几秒。
Re: 前两天笔试遇到一个题,怎么删除目录下10万个文件?小弟太菜,求高手指导下
发表于 : 2014-01-08 13:22
由 linvex
如果是遴选删除,为什么我第一反应是用python写。。
Re: 前两天笔试遇到一个题,怎么删除目录下10万个文件?小弟太菜,求高手指导下
发表于 : 2014-01-08 17:32
由 eleven.i386
rsync 删除这种海量小文件 很管用的说... 虽然我没也监控过负载和时间. 不过感觉比直接用rm 或者 xargs 都要快

Re: 前两天笔试遇到一个题,怎么删除目录下10万个文件?小弟太菜,求高手指导下
发表于 : 2014-01-08 20:23
由 zhw2101024
eleven.i386 写了:rsync 删除这种海量小文件 很管用的说... 虽然我没也监控过负载和时间. 不过感觉比直接用rm 或者 xargs 都要快

据我所知这跟Linux文件系统的一个特性有关,大多数文件系统都会在优化的时候把多个小文件放在一个inode块里,rm命令会把文件名一个一个发送给系统内核,再由系统内核返回对应的inode块地址,10万个文件光是找到所有inode块的地址就要很长时间了。而rsync在这方面的处理上应该更灵活一些,直接把这个目录底下的所有inode都清空了,效率自然高很多。
Re: 前两天笔试遇到一个题,怎么删除目录下10万个文件?小弟太菜,求高手指导下
发表于 : 2014-01-08 23:40
由 lilydjwg
zhw2101024 写了:eleven.i386 写了:rsync 删除这种海量小文件 很管用的说... 虽然我没也监控过负载和时间. 不过感觉比直接用rm 或者 xargs 都要快

据我所知这跟Linux文件系统的一个特性有关,大多数文件系统都会在优化的时候把多个小文件放在一个inode块里,rm命令会把文件名一个一个发送给系统内核,再由系统内核返回对应的inode块地址,10万个文件光是找到所有inode块的地址就要很长时间了。而rsync在这方面的处理上应该更灵活一些,直接把这个目录底下的所有inode都清空了,效率自然高很多。
有证据么?
我只看到 rsync 用 unlink,rm 用 unlinkat,以及一大堆 fcntl。