打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
linux下面快速删除大量文件及快速复制大量小文件
    (1)快速删除大量小文件
    今天遇见一个百万级的cache目录,删了20+分钟只删掉一个目录。。。。
    在网上找到了一种巧妙的快速删除方法,原理很简单,使用rsync同步一个空目录即可。对于万级文件的目录基本是秒删,回车就OK。
    步骤如下:
    1、建立一个空目录
        mkdir -p /tmp/rsync_blank
    2、确立需要清空的目标目录
        /data/ooxx
    3、使用rsync同步删除(注意目录后面的“/”),整体效率会快一个数量级的样子。
        rsync --delete-before -a -H -v --progress --stats /tmp/rsync_blank/ /data/ooxx/
    选项说明:
    –delete-before 接收者在传输之前进行删除操作
    –progress 在传输时显示传输过程
    -a 归档模式,表示以递归方式传输文件,并保持所有文件属性
    -H 保持硬连接的文件
    -v 详细输出模式
    -stats 给出某些文件的传输状态
    一般我们不需要显示进度,使用以下命令即可
        rsync --delete-before -a -H /tmp/rsync_blank/ /data/ooxx/
  这样我们要删除的 cache目录就会被清空了。 

tips: 
当SRC和DEST文件性质不一致时将会报错 
当SRC和DEST性质都为文件【f】时,意思是清空文件内容而不是删除文件 
当SRC和DEST性质都为目录【d】时,意思是删除该目录下的所有文件,使其变为空目录 
最重要的是,它的处理速度相当快,处理几个G的文件也就是秒级的事 

最核心的内容是:rsync实际上用的就是替换原理 


  (2)快速复制大量小文件方法 
  1,在需要对大量小文件进行移动或复制时,用cp、mv都会显得很没有效率,可以用tar先压缩再解压缩的方式。 
  2,在网络环境中传输时,可以再结合nc命令,通过管道和tcp端口进行传输。 
  nc和tar可以用来快速的在两台机器之间传输文件和目录,比ftp和scp要来得简单的多。 
  由于nc是一个超轻量的命令,所以一般busybox都会集成它。当一个linux终端,比如linux pda, 
  通过usblan的方式连接到另一台linux主机的时候,这样的嵌入式终端上一般不会集成ftp server, ssh server 
  这样比较笨重的服务,这个时候, nc可能成为唯一的上传手段。 
  比如将机器A上的mytest目录上传到到机器 B(192.168.0.11)上,只需要: 
  在机器B上,用nc来监听一个端口,随便就好,只要不被占用;并且将收到的数据用tar展开。-l代表监听模式。 
  #nc -l 4444 |tar -C /tmp/dir -zxf - 
  然后,在A上通过nc和 tar发送test目录。使用一致的4444的端口。 
  #tar -zcvf  -  test|nc 192.168.0.11 4444

REF:

http://www.blogjava.net/hongqiang/archive/2012/07/12/382939.html

Linux文件系统十问,你知道吗?

http://djt.qq.com/article/view/620

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
总结一些平时常用的Linux命令 – 青梅煮酒
VMware下linux与window文件夹共享
linux 转换目录文件
这些傻白甜的Linux命令,不会有人教你!
Linux下大文件跨网传输的方法
在VMware中为RedHat Enterprise Linux 5安装VMware tools
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服