hideonwhere
V2EX  ›  问与答

(求助)请教一个 unbutu 删除大量文件的做法

  •  
  •   hideonwhere · Sep 7, 2022 · 1617 views
    This topic created in 1434 days ago, the information mentioned may be changed or developed.

    现在想要删除文件夹内的压缩包 其他文件不处理

    起因是我压缩的时候使用错的命令 本来是想分包压缩 2g 的 在 2048 之后没有加 m 导致压缩 n 个 2048 大小的压缩包

    错误命令 tar cjvf - xx/ |split -b 2048 - xx.tar.bz2.

    现在用 ls -1 -f 还没排完就已经是 xx.zzzagbhm 的数量了

    使用 rm 命令应该是一个个文件的执行 硬件已经没办法负荷了 会导致卡死

    rsync --delete 看网上好像是针对整一个文件夹

    上述命令使用了 也提示参数列表过长 比如 rm -rf xx.bar.bz2.zzz*

    10 replies    2022-09-13 18:16:29 +08:00
    wxf666
        1
    wxf666  
       Sep 7, 2022   ❤️ 1
    find . -name 'xx.tar.bz2.*' -delete ?
    AoEiuV020CN
        2
    AoEiuV020CN  
       Sep 7, 2022   ❤️ 1
    find -name '*.tar.bz' -exec rm -f {} \;

    不是最高性能,但方便能用,
    goodryb
        3
    goodryb  
       Sep 7, 2022   ❤️ 1
    如果磁盘空间够的话,在上级目录下建个临时文件夹,先把这些无用的压缩包 mv 到临时文件夹下面,继续你正常工作

    完了再慢慢删除这些无用数据,可以先把文件列表 ls 出来,循环产出,虽然时间会很长,但不影响机器性能
    hideonwhere
        4
    hideonwhere  
    OP
       Sep 7, 2022
    @wxf666
    @AoEiuV020CN
    正在尝试 之前使用了一些 find xxx 的命令会提示 参数列表过长 现在好像能够正常执行
    AoEiuV020CN
        5
    AoEiuV020CN  
       Sep 7, 2022
    @hideonwhere #4 别用管道之类的把 find 输出导向其他命令就好,
    -delete 或者-exec 都是一个一个文件执行,参数不会太长,
    AoEiuV020CN
        6
    AoEiuV020CN  
       Sep 7, 2022
    @goodryb #3 这死结了,能 mv 就能 rm ,任何文件 rm 都不会比 mv 困难,
    hideonwhere
        8
    hideonwhere  
    OP
       Sep 7, 2022
    @eason1874 这个命令尝试过 会出现 “参数列表过长”的错误提示
    hxy100
        9
    hxy100  
       Sep 10, 2022   ❤️ 1
    任何提示参数列表过长的命令都可以使用 xargs 缓解,xargs -n xxx 分批次传递参数,想传递几个传递几个~
    hideonwhere
        10
    hideonwhere  
    OP
       Sep 13, 2022
    @hxy100 后面用工具写了多条分批次执行了 [哭]
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3246 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 11:29 · PVG 19:29 · LAX 04:29 · JFK 07:29
    ♥ Do have faith in what you're doing.