V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
CUMTProgrammer
V2EX  ›  程序员

删除大型文件有没有什么快速的命令,有 5 个多 T, rm -rf 太慢了

  •  
  •   CUMTProgrammer · 2018-11-05 16:51:06 +08:00 · 10661 次点击
    这是一个创建于 1992 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言  ·  2018-11-06 09:09:08 +08:00
    描述错了,是 5T 的很多小文件,不是一个文件,不好意思
    44 条回复    2021-06-25 09:30:18 +08:00
    ml1344677
        1
    ml1344677  
       2018-11-05 16:52:54 +08:00
    买个新硬盘(逃
    lfzyx
        2
    lfzyx  
       2018-11-05 16:52:58 +08:00   ❤️ 4
    用 rsync --delete 同步一个空文件夹?
    kslr
        3
    kslr  
       2018-11-05 16:57:44 +08:00 via Android
    这个命令不慢吧 也就几十分钟 也有反应的时间
    likuku
        4
    likuku  
       2018-11-05 16:58:06 +08:00
    可以格盘么?意思是可以整盘摧毁么?

    mkfs -f /dev/diskAccessPoint 就可以。或者 dd if=/dev/zero of=/dev/diskAccessPoint bs=1M count=1000

    保证很快。
    likuku
        5
    likuku  
       2018-11-05 16:59:33 +08:00
    删除很多文件的话,rm 会让 参数列表爆炸的,得用 find /forRemovePath/* -exec rm -f {} \;
    CUMTProgrammer
        6
    CUMTProgrammer  
    OP
       2018-11-05 16:59:51 +08:00
    @ml1344677 买不起,公司给的服务器,里面一堆日志

    @lfzyx 这个效率比 rm 高吗?
    CUMTProgrammer
        7
    CUMTProgrammer  
    OP
       2018-11-05 17:01:10 +08:00
    @likuku 我想把 home 节点底下的全部删了
    privil
        8
    privil  
       2018-11-05 17:06:21 +08:00
    privil
        9
    privil  
       2018-11-05 17:07:18 +08:00
    5t 都是小文件的话,能删个好几天的
    EXE
        10
    EXE  
       2018-11-05 17:08:56 +08:00
    dd if=/dev/zero of=/dev/sda
    arrow8899
        11
    arrow8899  
       2018-11-05 17:10:29 +08:00   ❤️ 1
    同 2L,rsync 删除几百万个文件只要几分钟
    mkdir /data/blank
    rsync --delete-before -d /data/blank/ /home
    Mosugar
        12
    Mosugar  
       2018-11-05 17:11:28 +08:00
    格式化 一切都清爽了
    ltoddy
        13
    ltoddy  
       2018-11-05 17:13:26 +08:00
    删除大型文件有没有什么快速的命令,有 5 个多 T,rm -rf 太慢了

    这是原文. 我感觉楼主你说错了, 删除是 lazy 的, 大型文件, 也是瞬间删除的, 比如一个 5T 的大型文件,也是一下子就删除了.
    如果你感觉太慢了, 只能说明你电脑当前几乎和死机状态差不多.
    webdisk
        14
    webdisk  
       2018-11-05 17:23:32 +08:00 via Android
    删过一个 20T 的文件,用了很长时间的,有三分钟 。
    Mithrandir
        15
    Mithrandir  
       2018-11-05 17:38:37 +08:00
    eatmydata rm -rf
    Mithrandir
        16
    Mithrandir  
       2018-11-05 17:40:01 +08:00
    补充一下,eatmydata 的原理是操作文件的时候不执行 fsync 和其他同步磁盘的系统调用,从而节省时间
    Mithrandir
        17
    Mithrandir  
       2018-11-05 17:40:22 +08:00
    再补充一下:我没测过 rm -rf
    Lax
        18
    Lax  
       2018-11-05 17:44:39 +08:00
    看标题以为是 「 1 个大小为 5T 的“大型文件”」
    tulongtou
        19
    tulongtou  
       2018-11-05 17:47:19 +08:00 via iPhone
    晚上执行一下 rm 第二天早晨还不好?
    pkookp8
        20
    pkookp8  
       2018-11-05 17:58:29 +08:00 via Android
    @ltoddy 我觉得是楼主描述错了
    大型文件->数量非常多的加在一起很大的文件
    答案是不能,mv 然后晚上没人用的时候后台慢慢删
    blless
        21
    blless  
       2018-11-05 18:02:01 +08:00 via Android
    不要输出 快很多
    msg7086
        22
    msg7086  
       2018-11-05 18:03:16 +08:00
    删除大型文件,如果是 ext3 的话需要逐个 block 释放,很慢是正常的,而且没有任何解决办法。
    删除大量小文件,rsync 大法比 rm 快得多。
    rrfeng
        23
    rrfeng  
       2018-11-05 18:17:37 +08:00   ❤️ 1
    又有傻逼说 rsync 删除文件比 rm 快了。
    javaCoder
        24
    javaCoder  
       2018-11-05 18:19:39 +08:00
    mv fileName /data/null
    mikeguan
        25
    mikeguan  
       2018-11-05 18:23:57 +08:00 via Android
    @likuku #5 find 用-exec rm 会很慢的 直接用-delete 的速度比它快几十倍
    blueskea
        26
    blueskea  
       2018-11-05 18:33:40 +08:00
    看见别人用过 truncate,不知道怎么样
    xiaowangwang92
        27
    xiaowangwang92  
       2018-11-05 19:07:24 +08:00
    往文件中写 0 ~。~
    mmdsun
        28
    mmdsun  
       2018-11-05 19:33:46 +08:00 via Android
    echo " > files 我清理日志是这样子的。大约 500GB 的日志,很快就清楚了
    402124773
        29
    402124773  
       2018-11-05 19:47:17 +08:00
    @lfzyx
    这个方法确实很快,我一直都用这个
    3d3ec7a
        30
    3d3ec7a  
       2018-11-05 19:47:30 +08:00
    mv 到别的地方, 然后后台慢慢 rm ...
    3d3ec7a
        31
    3d3ec7a  
       2018-11-05 19:51:46 +08:00
    不知道内核对 unlink syscall 是否加锁、sync, 否则可以并行删除, 以利用 SSD 的特性.

    具体用哪个工具不明..
    WEIHUANJIHE
        32
    WEIHUANJIHE  
       2018-11-05 19:59:37 +08:00
    啊啊啊啊
    ETiV
        33
    ETiV  
       2018-11-05 20:01:37 +08:00 via iPhone
    find | xargs -P99
    ghhardy
        34
    ghhardy  
       2018-11-05 20:10:21 +08:00 via Android
    @Lax 其实标题就是这个意思,楼主啥意思得问他自己
    HunterPan
        35
    HunterPan  
       2018-11-05 20:18:25 +08:00
    必须 echo > file
    zbinlin
        36
    zbinlin  
       2018-11-05 20:34:37 +08:00
    如果是单个大文件的,可以先用 `truncate -s 0 <FILEN>` 把大小置为 0 再删除;
    如果是很多小文件的,可以用 `rsync` 来删除。
    jasonyang9
        37
    jasonyang9  
       2018-11-05 20:50:21 +08:00
    学习了。没实践过,跑路前可以试试
    flynaj
        38
    flynaj  
       2018-11-05 21:10:49 +08:00
    mkfs.exe4 /dev/sda
    flynaj
        39
    flynaj  
       2018-11-05 21:11:26 +08:00
    mkfs.ext4 /dev/sda
    mondeo
        40
    mondeo  
       2018-11-05 21:44:02 +08:00 via iPhone
    直接把父目录的硬链接删掉
    ladypxy
        41
    ladypxy  
       2018-11-05 21:44:36 +08:00
    用 for i 循环会快一些
    unkn369
        42
    unkn369  
       2018-11-05 21:51:38 +08:00 via Android
    realpg
        43
    realpg  
       2018-11-06 12:59:02 +08:00
    从文件系统干掉父目录硬链接然后修复文件系统
    tongjun
        44
    tongjun  
       2021-06-25 09:30:18 +08:00
    rsync 没多快,至少做不到秒删
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1894 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 329ms · UTC 16:17 · PVG 00:17 · LAX 09:17 · JFK 12:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.