Linux 小白一个,有两个 Linux 问题不懂

2020-04-19 10:34:33 +08:00
 cydian

因为程序需要的原因,服务器上的 A 文件夹下有过百万的小文件(绝大多数 50KB 以下)

1.inode 满了,如何在数据不变动的情况下,加 inode ?

2.A 目录下有 100 万小文件(没有子文件夹),如何编写命令,删除最后使用过的 50 万文件(不是根据文件创建日期)

2235 次点击
所在节点    问与答
11 条回复
OSDI
2020-04-19 11:01:27 +08:00
1. 什么文件系统
2. 如果开了访问时间元数据记录,根据它来删
unixeno
2020-04-19 11:19:24 +08:00
1. 把文件复制一份,然后格式化分区的时候增加 inode,最后把文件复制回来。目前没有方法动态的增加 inode 数量
2. 你要知道访问时间的话,可以直接用 find 删,不知道的话估计得先列出来,然后按访问时间排序再删
cydian
2020-04-19 11:23:51 +08:00
@unixeno 怎么获知访问时间。
这方面我是小白,还请多指教。
hideinbush
2020-04-19 11:45:55 +08:00
-newermt -mtime 分别跟具体时间和修改时间,你 Google 下呗,都有例子的
MajorAdam
2020-04-19 11:53:21 +08:00
2 很简单
love
2020-04-19 12:42:22 +08:00
这种海量小文件就不要用 ext 了,这个 fs 的文件数量是固定的,你可以用一个不限制文件数量的,比如 reisferfs
cydian
2020-04-19 13:55:58 +08:00
@MajorAdam 可以发个命令吗?
我是真小白,平时只管写代码。
MoccaCafe
2020-04-19 14:15:44 +08:00
@cydian 需求 2 的命令如下:

```
find . -type f | xargs ls -ta | head -n 500000 | xargs -I {} rm {} -rf \;
```

建议提前备份一遍,或者把上面的 rm 改成 mv
MoccaCafe
2020-04-20 22:57:36 +08:00
@cydian 有帮助到你吗?这样不回复感受到不尊重,以后就没有人再愿意帮助你了
cydian
2020-04-20 22:59:41 +08:00
@MoccaCafe 不好意思呀。
我正打算明天测试一下呢。


给每个回复点个赞。
感谢回复。
hideinbush
2020-04-20 23:14:18 +08:00

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

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

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

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

© 2021 V2EX