使用Python实现简单Linux的find命令

代码如下:
#!/usr/bin/python
#*-*coding:utf8*-*
from optparse import OptionParser
import os
import sys
#使用选项帮助信息可以使用中文
reload(sys)
sys.setdefaultencoding("utf-8")
#定义选项以及命令使用帮助信息
usage = sys.argv[0] + " Directory Options\n\n例:"+sys.argv[0] + " /etc --type f --name passwd\n\n注意:选项和目录益可随意调换,可以写多个目录,会从多个目录中进行查找"
parser = OptionParser(usage)
parser.add_option("--type",
dest="filetype",
action="store",
default=False,
help="指定查找对象的类型,文件类型可以是 d:代表目录 f:代表文件")
parser.add_option("--name",
dest="name",
action="store",
default=False,
help="指定查找对象的名称,文件或目录全名")
options, args = parser.parse_args()
def find(dir):
directory = os.walk(dir)
for x, y, z in directory:
if options.filetype == "f":
for name in z:
if name == options.name:
path = os.path.join(x,name)
print(path)
if options.filetype == "d":
for name in y:
if name == options.name:
path = os.path.join(x,name)
print(path)
#判断目录是否存在,并且是否为目录
for dir in args:
if os.path.exists(dir) == False:
sys.stderr.write(dir+" is not found\n")
exit(100)
if os.path.isfile(dir):
sys.stderr.write(dir+" is a file\n")
exit(101)
#判断--type选项是否正确,只能跟 f 或者 d
if not (options.filetype == "f" or options.filetype == "d"):
sys.stderr.write("--type only support d or f\n")
exit(102)
if __name__ == "__main__":
for dir in args:
find(dir)
运行结果如下:
# python
# find命令
# python模拟find命令
# 实现linux的find命令
# linux find命令将查找到的文件批量删除方法
# 详解Linux下find查找文件命令和grep查找文件命令
# Linux 命令find之查找文件的示例
# 详解Linux中两个查找命令locate和find教程
# Linux下find和grep常用命令及区别介绍
# Linux中find命令的用法汇总
# Linux find命令及实用示例详解
# 多个
# 可以使用
# 是否存在
# 是否正确
# 目录中
# setdefaultencoding
# utf
# reload
# sys
# os
# type
# passwd
# import
# Options
# usage
# argv
# Directory
# brush
# py
# usr
相关文章:
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
香港服务器部署网站为何提示未备案?
活动邀请函制作网站有哪些,活动邀请函文案?
建站之星2.7模板:企业网站建设与h5定制设计专题
已有域名建站全流程解析:网站搭建步骤与建站工具选择
建站之星备案流程有哪些注意事项?
ui设计制作网站有哪些,手机UI设计网址吗?
如何快速上传建站程序避免常见错误?
建站VPS推荐:2025年高性能服务器配置指南
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
上海网站制作开发公司,上海买房比较好的网站有哪些?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
如何用5美元大硬盘VPS安全高效搭建个人网站?
网站图片在线制作软件,怎么在图片上做链接?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
文字头像制作网站推荐软件,醒图能自动配文字吗?
重庆市网站制作公司,重庆招聘网站哪个好?
如何快速搭建自助建站会员专属系统?
重庆网站制作公司哪家好,重庆中考招生办官方网站?
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
建站三合一如何选?哪家性价比更高?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
如何自定义建站之星网站的导航菜单样式?
建站主机是什么?如何选择适合的建站主机?
如何在阿里云ECS服务器部署织梦CMS网站?
如何在橙子建站中快速调整背景颜色?
建站之星安装路径如何正确选择及配置?
建站DNS解析失败?如何正确配置域名服务器?
建站之星代理平台如何选择最佳方案?
Swift中switch语句区间和元组模式匹配
宝塔建站无法访问?如何排查配置与端口问题?
制作网站的软件免费下载,免费制作app哪个平台好?
建站之星微信建站一键生成小程序+多端营销系统
如何用y主机助手快速搭建网站?
小程序网站制作需要准备什么资料,如何制作小程序?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
定制建站平台哪家好?企业官网搭建与快速建站方案推荐
简单实现Android验证码
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
如何快速上传自定义模板至建站之星?
如何使用Golang table-driven基准测试_多组数据测量函数效率
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
在线制作视频的网站有哪些,电脑如何制作视频短片?
*请认真填写需求信息,我们会在24小时内与您取得联系。