everything@常用搜索语法@everything命令行搜索
Everything 是一款功能强大的文件搜索工具,它能快速地在 Windows 系统中搜索文件和文件夹。除了图形用户界面(GUI)之外,Everything 还提供了命令行接口(CLI),使得用户可以通过命令行来进行搜索和执行各种操作。使用 CLI 接口的优势在于它可以方便地集成到脚本中,自动化搜索任务,或者通过管道将搜索结果与其他命令结合使用。Searching - voidtools|搜索语
文章目录
abstract
Everything 是一款功能强大的文件搜索工具,它能快速地在 Windows 系统中搜索文件和文件夹。除了图形用户界面(GUI)之外,Everything 还提供了命令行接口(CLI),使得用户可以通过命令行来进行搜索和执行各种操作。使用 CLI 接口的优势在于它可以方便地集成到脚本中,自动化搜索任务,或者通过管道将搜索结果与其他命令结合使用。
- Command Line Options - voidtools
- Command Line Interface - voidtools
- Searching - voidtools|搜索语法(GUI/CLI通用)
Everything CLI 接口使用介绍
安装 Everything CLI
在使用 Everything CLI 之前,您需要确保已经安装了 Everything 并启用了 CLI 功能。以下是安装和启用 CLI 的步骤:
普通安装
- 下载并安装 Everything:从 Everything 官网 下载并安装最新版的 Everything。
- 启用服务模式:为了让 CLI 能够正常工作,建议以服务模式运行 Everything。在 Everything 主窗口中,依次选择
工具
->选项
->常规
,勾选服务
选项。 - 设置环境变量:将 Everything 的安装目录添加到系统的
PATH
环境变量中,以便在命令行中直接调用es.exe
。
scoop安装
scoop install everything-cli -g
一步到位,但是需要部署scoop,建议是加速版本scoop
2. 基本命令用法
Everything CLI 的核心命令是 es
,它用于在命令行中执行搜索。下面是一些基本的使用示例:
2.1 搜索文件
要搜索包含特定关键词的文件或文件夹,您可以使用以下命令:
es "关键字"
例如,搜索所有包含 “document” 的文件或文件夹:
es "document"
2.2 使用通配符
Everything CLI 支持使用通配符来进行更灵活的搜索。常见的通配符包括 *
(匹配任意字符)和 ?
(匹配单个字符)。例如:
es "*.txt"
上面的命令将搜索所有扩展名为 .txt
的文件。
2.3 搜索特定类型的文件
通过使用文件类型过滤器,可以更精确地搜索文件。例如,搜索所有的图片文件:
es *.jpg *.png *.gif
您还可以使用 regex:
前缀进行正则表达式搜索:
es regex:".*\.(jpg|png|gif)$"
3. 高级命令和参数
Everything CLI 提供了多种参数来控制搜索结果的输出和格式。以下是一些常用的高级参数:
3.1 限制搜索深度
您可以通过 -maxdepth
参数来限制搜索深度。此参数用于指定搜索的最大目录层级。例如,仅搜索当前目录中的文件和文件夹:
es -maxdepth 1 "关键字"
3.2 输出控制
Everything CLI 可以将搜索结果格式化输出。以下是一些控制输出的参数:
-
-n <number>
:限制输出结果的数量。例如,输出前 10 个搜索结果:es -n 10 "关键字"
-
-s <sort>
:指定排序方式(如 name、size、date modified 等)。例如,按文件大小排序:es -s size "关键字"
-
-path
:只输出文件路径,不包括文件名:es -path "关键字"
3.3 搜索特定目录
使用 -path
参数可以指定搜索范围。例如,仅在 C:\Users\
目录下搜索:
es -path "C:\Users\" "关键字"
4. 结合批处理和脚本使用
Everything CLI 可以非常方便地集成到批处理文件和脚本中,实现自动化搜索任务。以下是一个简单的批处理脚本示例,它将搜索结果保存到一个文本文件中:
@echo off
es "关键字" > results.txt
echo 搜索已完成,结果保存在 results.txt 中。
pause
排序示例
假设我们需要找到 C:\Projects
目录中最近修改的前 5 个 .cpp
文件,并将结果按修改日期排序,输出到一个文本文件中:
es -path "C:\Projects" -n 5 -s "date modified" "*.cpp" > recent_cpp_files.txt
搜索某个目录下的某个子目录或文件
#搜索计算机上路径中包含msys开头的(子)目录并且该目录下存在包含g++.exe的文件
PS> es \msys g++.exe
D:\msys64\ucrt64\bin\g++.exe
D:\msys64\ucrt64\bin\x86_64-w64-mingw32-g++.exe
#进一步要求文件名恰好为g++.exe的情况
PS> es \msys64 \g++.exe
D:\msys64\ucrt64\bin\g++.exe
精确匹配
- 假设我需要找到计算机上所有名字恰好为
gcc.exe
的文件,可以借助正则表达式^gcc\.exe$
和相应开关-r
这么做
PS☀️[BAT:72%][MEM:35.15% (11.15/31.71)GB][20:37:29]
#⚡️[cxxu@CXXUCOLORFUL][<W:192.168.1.178>][~\.config\scoop]
PS> es -r "^gcc\.exe$"
D:\exes\RedPanda-CPP\MinGW64\bin\gcc.exe
D:\msys64\ucrt64\bin\gcc.exe
D:\Program Files (x86)\Dev-Cpp\MinGW64\bin\gcc.exe
-
这里
gcc.exe
的.
号严格来说需要转义.
才能够避免匹配到别的名字,比如gcc@exe
这类情况PS> es -r "^gcc.exe$" D:\exes\RedPanda-CPP\MinGW64\bin\gcc.exe D:\msys64\ucrt64\bin\gcc.exe D:\Program Files (x86)\Dev-Cpp\MinGW64\bin\gcc.exe C:\Users\cxxu\gcc@exe #匹配到了不想要的文件名
-
也可以将查找限定在指定目录中查找
PS> es -r "^gcc.exe$" D:\exes\RedPanda-CPP\MinGW64\bin\gcc.exe D:\msys64\ucrt64\bin\gcc.exe D:\Program Files (x86)\Dev-Cpp\MinGW64\bin\gcc.exe C:\Users\cxxu\gcc@exe
6. 总结
Everything CLI 提供了一种强大而灵活的文件搜索方式,尤其适合开发者和高级用户。通过 CLI 接口,您可以轻松地将 Everything 集成到各种脚本和自动化任务中,提高工作效率。掌握这些命令和参数,将大大提升您的文件搜索能力。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)