使用零个或多个文件和目录筛选器搜索文件系统。
pathscan的Python项目详细描述
fss将递归扫描给定目录中的匹配文件,并作为生成器生成结果。您可以提供文件和/或目录的包含/排除规则列表。
搜索是从另一个进程异步完成的。这样,搜索和对结果所做的任何操作都可能并行运行。
用法
作为库
示例:
importfss.constantsimportfss.config.logimportfss.orchestratorroot_path='/etc'filter_rules=[(fss.constants.FT_DIR,fss.constants.FILTER_INCLUDE,'init'),(fss.constants.FT_FILE,fss.constants.FILTER_INCLUDE,'net*'),(fss.constants.FT_FILE,fss.constants.FILTER_EXCLUDE,'networking.conf'),]o=fss.orchestrator.Orchestrator(root_path,filter_rules)for(entry_type,entry_filepath)ino.recurse():ifentry_type==fss.constants.FT_DIR:print("Directory: [%s]"%(entry_filepath,))else:# entry_type == fss.constants.FT_FILE:print("File: [%s]"%(entry_filepath,))
输出:
Directory: [/etc/init] File: [/etc/networks] File: [/etc/netconfig] File: [/etc/init/network-interface-container.conf] File: [/etc/init/networking.conf] File: [/etc/init/network-interface-security.conf] File: [/etc/init/network-interface.conf]
注意,即使我们只包含名为“init”的目录,我们仍然会看到来自根路径的匹配文件。
作为脚本
您还可以从命令行使用fss。您将得到一个可以使用和解析的结果的打印输出。
示例:
$ pathscan -i "i*.h" -id php /usr/include F /usr/include/iconv.h F /usr/include/ifaddrs.h F /usr/include/inttypes.h F /usr/include/iso646.h D /usr/include/php
要求
- Python3.4
安装
PYPI:
$ sudo pip3 install pathscan