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

2022-09-07 14:46:40 +08:00
 hideonwhere

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

起因是我压缩的时候使用错的命令 本来是想分包压缩 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*

840 次点击
所在节点    问与答
10 条回复
wxf666
2022-09-07 14:53:39 +08:00
find . -name 'xx.tar.bz2.*' -delete ?
AoEiuV020CN
2022-09-07 14:55:15 +08:00
find -name '*.tar.bz' -exec rm -f {} \;

不是最高性能,但方便能用,
goodryb
2022-09-07 14:56:20 +08:00
如果磁盘空间够的话,在上级目录下建个临时文件夹,先把这些无用的压缩包 mv 到临时文件夹下面,继续你正常工作

完了再慢慢删除这些无用数据,可以先把文件列表 ls 出来,循环产出,虽然时间会很长,但不影响机器性能
hideonwhere
2022-09-07 14:57:46 +08:00
@wxf666
@AoEiuV020CN
正在尝试 之前使用了一些 find xxx 的命令会提示 参数列表过长 现在好像能够正常执行
AoEiuV020CN
2022-09-07 15:00:11 +08:00
@hideonwhere #4 别用管道之类的把 find 输出导向其他命令就好,
-delete 或者-exec 都是一个一个文件执行,参数不会太长,
AoEiuV020CN
2022-09-07 15:02:31 +08:00
@goodryb #3 这死结了,能 mv 就能 rm ,任何文件 rm 都不会比 mv 困难,
eason1874
2022-09-07 15:56:51 +08:00
hideonwhere
2022-09-07 16:17:16 +08:00
@eason1874 这个命令尝试过 会出现 “参数列表过长”的错误提示
hxy100
2022-09-10 00:41:08 +08:00
任何提示参数列表过长的命令都可以使用 xargs 缓解,xargs -n xxx 分批次传递参数,想传递几个传递几个~
hideonwhere
2022-09-13 18:16:29 +08:00
@hxy100 后面用工具写了多条分批次执行了 [哭]

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/878359

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX