• -linux删除大量文件----rm,rsync


    要在linux下删除海量文件,比如有数十万个文件,此时常用的rm -rf * 就会等待时间很长。这时我们可以使用rsync快速删除大量文件。
     

    1、建立一个空目录

    mkdir -p /tmp/rsync_blank

    2、确立需要清空的目标目录

    /data/web/vip/htdocs/tuan

    3、使用rsync同步删除(注意目录后面的“/”),整体效率会快一个数量级的样子。

    rsync --delete-before -a -H -v --progress --stats /tmp/rsync_blank//data/web/vip/htdocs/tuan/

    选项说明:

    –delete-before 接收者在传输之前进行删除操作

    –progress 在传输时显示传输过程

    -a 归档模式,表示以递归方式传输文件,并保持所有文件属性

    -H 保持硬连接的文件

    -v 详细输出模式

    -stats 给出某些文件的传输状态

    一般我们不需要显示进度,使用以下命令即可

    rsync --delete-before -a -H /tmp/rsync_blank//data/web/vip/htdocs/tuan/


    把某个文件删掉

    1 建立空文件/tmp/empty.txt

    2 rsync --delete-before -a -H -v --progress --stats /tmp/empty.txt  /opt/bre/xuanji.xiao/test/app.log 

    3 这样置为空后就可以快速删掉

    原理:把文件系统的目录与书籍的目录做类比,rm删除内容时,将目录的每一个条目逐个删除(unlink),需要循环重复操作很多次;rsync删除内容时,建立好新的空目录,替换掉老目录,基本没开销。


    rm命令

    rm删除(清除)一个或多个文件 -f 选项将强制删除文件,即使这个文件是只读的.并且可以用来避免用户输入(在非交互脚本中使用).

    经常会遇到文件名开头为特殊符号的文件后目录,如.mk  @等,可以直接rm -rf 删除,或是添加转意字符即可。

    今天碰到这样一个情况……

    rm将无法删除以破折号开头的文件.


    1. rm -slow_query_130103.txt.gz

    2. rm: invalid option -- s

    3. Try `rm ./-slow_query_130103.txt.gz' to remove the file `-slow_query_130103.txt.gz'.

    4. Try `rm --help' for more information.

    官方在帮助文档中作了特别说明:


    1. To remove a file whose name starts with a `-', for example `-foo',
    2. use one of these commands:
    3. rm -- -foo

    4. rm ./-foo

    解决这个问题的一个方法就是在要删除的文件的前边加上"./"


  • 相关阅读:
    数字电路与系统-组合逻辑电路逻辑冒险
    数字电路与系统-组合逻辑电路竞争与冒险
    数字电路与系统-组合逻辑电路理论分析(视频)
    数字电路与系统-逻辑函数最后的总结
    微信小程序--成语猜猜看
    微信小程序开发中如何实现侧边栏的滑动效果?
    强力推荐微信小程序之简易计算器,很适合小白程序员
    【微信小程序】自定义模态框实例
    编程微刊第四期文章汇总(2018.4)
    ajax实现简单的点击左侧菜单,右侧加载不同网页
  • 原文地址:https://www.cnblogs.com/catkins/p/5270513.html
Copyright © 2020-2023  润新知