
1 aminobody 2024-11-21 17:30:33 +08:00 因为 Linux 、macOS 都不用 NTFS 文件系统. |
2 drymonfidelia OP @aminobody Linux ext4 也有日志可以用来搜索啊 |
3 1988chg 2024-11-21 17:32:11 +08:00 everthing 的主要是利用 nfts 的 MTF 和 usn 特性。 Master File Table (MTF) 在 NTFS 文件系统中,有一个特殊的表,称为 MTF 表。所有文件夹和文件的名称都被存储在该表中,Everything 通过遍历这个表的所有内容,实现在不遍历文件系统就能获取当前磁盘中的所有文件的名称和路径。 USN journal NTFS 的日志功能。所有对文件系统的修改操作都被记录在了一个 journal 日志文件中。Everything 通过监控这个日志文件实现对文件修改的监控。 |
4 drymonfidelia OP @1988chg ext4 也有日志功能,也有存放 inode 关系的表 |
5 drymonfidelia OP 而且 Windows 也没内置这种功能 |
6 aminobody 2024-11-21 17:35:56 +08:00 @drymonfidelia #2 目前所有主流文件系统都是有 journal 的, 不过这个是为了维护一致性. EV 搜得快是因为 NTFS 特有的 USN 日志, 注意不要与 NTFS 文件系统的日志设计混淆。 |
7 PTLin 2024-11-21 17:44:49 +08:00 其实 fzf 也没慢到哪去的 |
8 yanqiyu 2024-11-21 17:45:45 +08:00 USN 日志和日志式文件系统维护一致性的那个日志不是一个日志 |
9 yinxs2003 2024-11-21 17:48:31 +08:00 Linux 有啊,locate 命令,比 everything 快多了 |
10 itskingname 2024-11-21 17:55:54 +08:00 @yinxs2003 亲测 locate 没有 everything 快。 我的 windows 电脑上面安装了很多游戏,理论上硬盘里面有非常多的文件。打开 everything 以后, 他是在整个硬盘层面搜索某个文件名,能秒出。 然后我在 Linux 的~/Project 里面,搜索某个文件名。由于这个文件夹里面有很多 ts 项目,node_modules 文件夹比较多。使用 locate 命令搜索某个文件名,速度非常慢,要好几秒才有结果。 |
12 loading 2024-11-21 18:00:39 +08:00 1. 目前其他系统没有 everything 类似性能的工具。 2. windows 不会像 OS X 那样集成别人开发的优秀工具到自己系统,而 OS X 就比较喜欢,这样能杀死开发者。 |
13 proxytoworld 2024-11-21 18:06:54 +08:00 权限隔离 |
14 vcn8yjOogEL 2024-11-21 18:17:59 +08:00 NTFS 本身有索引, 其他平台的全盘搜索都是另跑一个服务在后台扫文件 |
15 NoInternet 2024-11-21 19:07:21 +08:00 系统可能不会集成,但是没准 powertoys 哪天搞一个 |
16 MoonLin 2024-11-21 19:23:36 +08:00 everything 不能区分用户,所以作为一个系统来说 Windows 肯定不会集成的 |
17 drymonfidelia OP @MoonLin 不能区分用户很容易解决啊,像 everything 一样弄个高权限 daemon 常驻,搜索调用 daemon 的接口,二次筛选当前用户能访问的文件列表返回 @proxytoworld |
18 ekucn 2024-11-22 06:12:18 +08:00 @drymonfidelia 这样搞速度就上不去了,那又跟普通搜索啥区别? |
19 zwl2012 2024-11-22 08:31:47 +08:00 via iPhone 1.windows 环境下不止使用 ntfs 文件系统 2.windows 作为一个极其看重兼容性的系统,其搜索功能不能仅考虑 ntfs 文件系统,它的搜索需要在系统支持的所有文件系统中都能使用 3.everything 快是因为其开启了索引服务监听 ntfs 下 usn 日志变化加载到内存做相关过滤筛选,而 windows 搜索比较慢的时候会提示你开启文件索引,最差的情况下系统会逐个便利 4.现代的 windows 的索引不仅可以针对文件名称,文件内容也可以;只是默认并未开启,仅需用户做好相关配置加一定的建立索引的时间,即可达到媲美 everything 的效果 以上是个人对此问题的部分看法 |
20 yinxs2003 2024-11-22 10:45:08 +08:00 @itskingname everything 的快是在后台占用不少资源的,locate 搜啥也是秒出,谁知道你的为啥那么慢 |
22 meteora0tkvo 2024-11-22 11:45:00 +08:00 Linux 的 find 命令也搜得很快啊,只有 windows 自带的搜索做得那么拉跨 |
23 iceecream 2024-11-22 13:22:06 +08:00 locate 是基于库的,每天一更新。当天的文件是 locate 不出来的。 find 找文件基本上算全盘扫描。最慢的一种。 |
24 Ocean810975 2024-11-22 15:43:23 +08:00 歪个楼,相比 everything 我倒是觉得 Listary 更好用一些,主要在一些集成资源管理器上的部分。比方一些上传文件时就可以用其直接搜索。 windows 自带的索引我觉得都能直接关了……虽说那个能搜索 word 等文件里面的内容。但无论速度还是分词什么的,感觉多多少少有点问题。 |
25 CodeAllen 2024-11-22 16:44:47 +08:00 搜索需求很小。 找项目找代码习惯 vs code 的项目全局搜索 找文档直接去 one drive 目录使用自带的搜索功能 目前足够了,桌面图标我都关了,看着乱 所有文档我都用 one drive 同步,公司相关文档也就 3GB 多,才 1600 多个文件 |
26 azhaojingjing 89 天前 kde 下面 alt+space 不就好了么 |