Linux 中,如何按条件删除一个文件夹下的文件,文件夹中共 40g 内容,我要删掉 10g,怎么操作

2018-07-06 14:28:49 +08:00
 wsds

linux 中,如何按条件删除一个文件夹下的文件,文件夹中共 40G 内容(散文件),我要删掉 10G,保留 30G 的,怎么操作

ps: 硬盘全满,准备清理出来 10G,把另外 30G 压缩了拷出来

3701 次点击
所在节点    程序员
25 条回复
blankme
2018-07-06 14:37:09 +08:00
按条件筛选出文件,pipe 配合 xargs 传给 rm
pagict
2018-07-06 15:04:02 +08:00
find [path] [option] --delete
likuku
2018-07-06 15:05:58 +08:00
条件呢?条件都没表示出来...

只在乎容量的话,Python 配合 bash 就可以,bash 够强的话,纯 bash 也行。

思路:
获得所有文件名列表,遍历列表(或者按某种规则 /顺序,你想的话),
对每个文件探测其大小,字节为单位,du 或者 ls -l 或 py 的 os 模块里 相关工具,
记录文件大小,将大小其累加,累计不超过 10G (10240000000Bytes) 时,即呼叫 rm -fv 删除之,
直到累计达到 10G,则终止程序。
yanaraika
2018-07-06 15:06:15 +08:00
不要 xargs,用 2 楼说的 find --delete。因为如果文件名有奇异字符 xargs rm 有安全问题
frostming
2018-07-06 15:07:36 +08:00
这个需求很奇怪啊。

既然能接受无差别随机删除某些文件,为什么不直接全删了?
如果只删满足某条件的文件,用楼上的方法就行。那就不一定是删 10G 了。
lululau
2018-07-06 15:09:35 +08:00
又是 40g 又是 10g 的,好奇这个是怎么称出来的
jedihy
2018-07-06 15:52:07 +08:00
这好像是一个背包问题
pynix
2018-07-06 15:57:07 +08:00
既然能接受无差别随机删除某些文件,为什么不直接全删了?
pynix
2018-07-06 15:57:36 +08:00
随机删除岛国动作片吧。。
lcy630409
2018-07-06 15:59:06 +08:00
用 winscp 登陆 linux,进入文件夹,选择大小排列,多选 删除
搞定!
araraloren
2018-07-06 15:59:41 +08:00
不在乎内容 或者 大约数 剩 30G 的话

shell 版:
find . | perl -nE 'exit if qx/du -sh ./ <= 30; chomp; next if (! -e $_); print "rm $_ : ", system("rm -rf '"'"'${_}\'"'"'"); '
文件名用单引号引起来
openbsd
2018-07-06 16:02:55 +08:00
find /你的目录 -type f -size +500M -delete ?
大于 500M 的全干掉 ?
ShareDuck
2018-07-06 16:07:25 +08:00
既然可以随便删,说明文件没什么用,既然如此,何必不全删除掉??
ryd994
2018-07-06 16:24:53 +08:00
用 find 随机选取若干,删掉,检查容量大于 30G 则重复
用 bash 最多 10 行实现,非常简单的任务
ryd994
2018-07-06 16:26:18 +08:00
你这个需求,我觉得可以直接往移动硬盘里压缩即可解决
tar -C 了解一下
omph
2018-07-06 16:52:44 +08:00
如果不考虑文件夹的情况,从大到小删
ls -ilS | awk '{ if (size<10240000000){system("find -inum "$1" --delete"); size+=$6;}}'
注:没测
wobushizhangsan
2018-07-06 19:07:18 +08:00
打个响指
cjpjxjx
2018-07-06 19:21:42 +08:00
SFTP,选择一个容量分布比较随机的方式排序,选择 1/4 的内容,删除,误差应该不会很大
pWHx3x96
2018-07-06 19:31:01 +08:00
@pynix
@wobushizhangsan
可以的,脚本一跑,硬盘上一半的小视频没了
flynaj
2018-07-06 22:49:44 +08:00
rm -rf *

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

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

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

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

© 2021 V2EX