`` findx``,一个扩展的``find``命令。
findx的Python项目详细描述
概述
findx是在 python语言作为find和其他unix工具的包装。find是 一个非常强大的工具,但是它本身就有很多争论 典型调用所必需的。findx为 调用find而不输入太多。
作为一个简单的例子,想象一下使用find、xargs和grep搜索 通过一棵文件树。一个简单的调用可能是:
find -type f | xargs grep PATTERN
但是上面的调用不能正确处理带有空格或异常的文件 字符;将命令增长为:
find -type f -print0 | xargs -0 grep PATTERN
现在正确地处理了文件名,但是命令可能会搜索 一些无聊的文件。它也忽略了一些边界情况。你会的 可能希望包含xargs --no-run-if-empty以确保grep不是 在找不到文件时调用;您可能还希望遵循符号链接 作为文件;您可能希望跳过.git目录(例如)。 将这些添加到上面的命令中可以显著地提高性能:
find -L -name .git -prune -o -type f -print0 | xargs -0 --no-run-if-empty grep PATTERN
排除其他文件和目录后,可能添加 --color=auto到grep调用,事情正在失控。 {TT1}$存在以使这种调用更简单。首先,findx知道 使用:需要-print0和xargs -0--no-run-if-empty;这意味着 所有正确使用xargs的标准协议 收件人:
findx -L -name .git -prune -o -type f : grep PATTERN
要忽略的标准路径是通过-stdx:
请求的findx -L -stdx -type f : grep PATTERN
遵循指向文件的符号链接并仅生成文件是另一种常见的方法 要求;开关-ffx表示查找文件(以下符号链接) 同时排除一组预定义的目录和文件:
findx -ffx : grep PATTERN
将文件名管道到grep中是一种常见的模式,以至于-ffg开关 与-ffx : grep相同,将内容缩减为:
findx -ffg PATTERN
此外,ffx和ffg是^{tt1}的附加入口点$ 这会进一步降低成本:
ffx = findx -ffx ffg = findx -ffg
在最常见的情况下,搜索文件树会减少到:
ffg PATTERN
有关详细信息,请参阅findx --help或阅读findx.py的顶部。
安装
在pypi中,通常是安装:
pip install findx
从源代码树中,通过:
python setup.py install
运行测试
安装任何开发要求:
pip install -r dev-requirements.txt
通过pytest运行测试:
pytest
更改
有关更改历史,请参见changes.rst。
许可证
findx根据mit许可证的条款分发;请参阅license.rst。 详细情况。