高性能文件搜索工具 - 类似于Windows Everything的macOS解决方案
Project description
Everything Search for macOS
🚀 高性能文件搜索工具 - 类似于Windows Everything的macOS解决方案
✨ 特性
- 🔍 极速搜索 - 毫秒级文件搜索响应
- 📊 智能索引 - 增量索引和实时文件系统监控
- 🎯 多种搜索模式 - 支持模糊搜索、正则表达式、文件类型过滤
- 🖥️ 双界面支持 - 现代化GUI界面和强大的命令行工具
- ⚡ 高性能 - 多线程并发处理,优化的数据库查询
- 🔄 实时同步 - 文件系统变更实时更新索引
📦 安装
方式1:使用 uv tool(推荐)
# 安装
uv tool install everything-search
# 启动GUI
everything-search
# 使用CLI
everything-index start
everything-cli "keyword"
# 卸载
uv tool uninstall everything-search
方式2:从源码安装
# 克隆仓库
git clone https://github.com/duolabmeng6/everything-for-mac.git
cd everything-for-mac
# 使用uv tool安装到系统
uv tool install .
# 然后就可以使用系统命令了
everything-search # 启动GUI
everything-index start # 启动索引服务
everything-cli "keyword" # 搜索文件
# 卸载
uv tool uninstall everything-search
🚀 快速开始
命令行搜索
# 初始化索引后才可以搜索
everything-index start
# 基本搜索(直接搜索)
everything-cli "document"
# 正则表达式搜索
everything-cli "*.py" --regex
# 按文件类型搜索
everything-cli extension py
# 按文件大小搜索
everything-cli size --min-size 100M
# 搜索最近修改的文件
everything-cli recent --days 7
# 传统子命令方式(向后兼容)
everything-cli search "document"
🎯 快速命令参考
| 功能 | 命令 | 说明 |
|---|---|---|
| 安装工具 | uv tool install everything-search |
安装到系统 |
| 卸载工具 | uv tool uninstall everything-search |
从系统卸载 |
| 启动GUI | everything-search |
启动图形界面 |
| 初始化索引 | everything-index init |
首次建立文件索引 |
| 自动启动服务 | everything-index start |
自动初始化+增量更新+实时监控 |
| 查看索引状态 | everything-index status |
显示索引统计信息 |
| 基本搜索 | everything-cli "keyword" |
搜索包含关键词的文件 |
| 正则搜索 | everything-cli "*.py" --regex |
使用正则表达式搜索 |
| 按类型搜索 | everything-cli extension py |
搜索指定扩展名的文件 |
| 按大小搜索 | everything-cli size --min-size 100M |
搜索大于指定大小的文件 |
📖 详细使用
GUI界面
启动GUI后,您可以:
-
搜索页面:
- 在搜索框中输入关键词
- 支持实时搜索结果预览
- 可按文件名、大小、修改时间排序
- 右键菜单支持打开文件/文件夹
-
设置页面:
- 管理索引目录
- 配置排除规则
- 查看索引状态
- 启动/停止实时监控
命令行工具
索引管理 (everything-index)
# 查看帮助
everything-index --help
# 初始化索引
everything-index init
# 自动启动(初始化+增量更新+实时监控)
everything-index start
# 重建索引
everything-index rebuild
# 启动实时监控
everything-index watch
# 查看索引状态
everything-index status
# 配置管理
everything-index config show
everything-index config add-dir ~/Documents
文件搜索 (everything-cli)
# 查看帮助
everything-cli --help
# 基本搜索(直接搜索)
everything-cli "keyword"
# 高级搜索选项
everything-cli "pattern" --regex --limit 100
# 按扩展名搜索
everything-cli extension py
# 按大小搜索
everything-cli size --min-size 1M --max-size 100M
# 最近文件
everything-cli recent --days 30
# 搜索并打开
everything-cli open "config"
# 显示统计信息
everything-cli stats --extensions
# 传统子命令方式(向后兼容)
everything-cli search "keyword"
⚙️ 配置
配置文件位置:~/.everything-search/config.json
主要配置项:
{
"index": {
"directories": ["/Users/username/Documents", "/Users/username/Desktop"],
"exclude_dirs": [".git", "node_modules", ".venv"],
"exclude_extensions": [".tmp", ".log"],
"max_file_size_mb": 1000,
"follow_symlinks": false,
"index_hidden_files": false
},
"search": {
"case_sensitive": false,
"fuzzy_search": true,
"max_results": 1000
}
}
项目结构
everything-search/
├── everything_search/ # 主包
│ ├── core/ # 核心模块
│ │ ├── config_manager.py # 配置管理
│ │ ├── database.py # 数据库操作
│ │ ├── file_indexer.py # 文件索引
│ │ ├── search_engine.py # 搜索引擎
│ │ └── file_watcher.py # 文件监控
│ ├── cli/ # 命令行工具
│ │ ├── index_cli.py # 索引管理CLI
│ │ └── search_cli.py # 搜索CLI
│ ├── gui/ # GUI界面
│ │ ├── main_window.py # 主窗口
│ │ ├── search_tab.py # 搜索页面
│ │ └── settings_tab.py # 设置页面
│ └── gui_main.py # GUI启动脚本
├── pyproject.toml # 项目配置
└── README.md # 项目说明
🤝 贡献
欢迎提交Issue和Pull Request!
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开Pull Request
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
🙏 致谢
- 灵感来源于Windows平台的Everything搜索工具
- 使用了优秀的开源库:PySide6、watchdog等
📞 联系
- 作者:duolabmeng6
- 邮箱:1715109585@qq.com
- 项目链接:https://github.com/duolabmeng6/everything-for-mac
⭐ 如果这个项目对您有帮助,请给个Star支持一下!
打赏
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
everything_search-1.0.2.tar.gz
(577.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file everything_search-1.0.2.tar.gz.
File metadata
- Download URL: everything_search-1.0.2.tar.gz
- Upload date:
- Size: 577.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f882d2b11ba89b48ed432e03a348a5e151c09b69d3eea29b49b82492819d070e
|
|
| MD5 |
276a58e747bedca0808d338478a32e04
|
|
| BLAKE2b-256 |
743437a044635e4c68e7e1846062c2d5c8cca3ad9cd15e446223d3cff8844b51
|
File details
Details for the file everything_search-1.0.2-py3-none-any.whl.
File metadata
- Download URL: everything_search-1.0.2-py3-none-any.whl
- Upload date:
- Size: 53.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee12dc765e26e8847b26feaba23afe07e5ef36ce5d0a60b4455d7edada266fc4
|
|
| MD5 |
bfd12c386986ddd2021669ebf6b9583f
|
|
| BLAKE2b-256 |
07f7ad029f492c280a711437e1717d89ffab636ceb8af67a7455cc51b4249b47
|