文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux/Unix下find命令的用法是什么

2023-06-28 16:13

关注

这期内容当中小编将会给大家带来有关Linux/Unix下find命令的用法是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

find命令的主要功能就是沿着文件层次以此向下遍历,找到匹配条件的文件。

主要功能如下(所有测试均在当前目录(test)下开始匹配,搜索):

⓪:基本用法:列出给定目录(base_path)下所有的文件和子目录:find base_path -print

Linux/Unix下find命令的用法是什么

补充:

①:根据文件名和正则表达式进行搜索,使用选项 -name或-iname(忽略大小写):

find base_path -name ‘xxx’ -print

find base_path -iname ’xxx‘ -print

Linux/Unix下find命令的用法是什么

②:否定参数,可以用 !排除所指定到的模式。

Linux/Unix下find命令的用法是什么

此处将打印出除txt文本文件外的的所有文件。

③基于目录深度的搜索,find命令指定遍历完所有的子目录。使用-maxdepth和-mindefth可以限制find命令遍历的目录深度,并且find命令默认不搜索符号链接,可以用-L选项改变这种行为。

Linux/Unix下find命令的用法是什么

例如-maxdepth的参数为1时,只匹配当前目录下。

Linux/Unix下find命令的用法是什么

-mindepth的参数代表了开始进行匹配的目录到base_path的最短距离。

④:基于文件类型搜索:使用-type可以指定搜索的文件类型,linux/unix将所有的的一切都视为文件(文件类型有:普通文件f,目录d,符号链接 l,字符设备c,块设备b,套接字s,FIFO-p),使用 -type选项我们能够对文件类型进行过滤。

Linux/Unix下find命令的用法是什么

此处就会只匹配出特定项下的所有普通文件,和目录。

⑤:根据文件的时间戳进行搜索:Linux/Unix文件系统中的每一个文件都有三种时间戳,访问时间(-atime),修改时间(-mtime),变化时间(-ctime),单位为天数,用整数指定,数字前加上+,表示大于这个时间;加上-,表示小于这个天数;不加表示刚好这个天数。

Linux/Unix下find命令的用法是什么

此处的文件是我在进行截图之前才创建的,访问,修改,变化时间均小于一天。

当然相应的用分钟作为单位就可以用选项(-amin)(-mmin)(-cmin),如下我们测试修改时间

Linux/Unix下find命令的用法是什么

⑥:基于文件大小的搜索:find提供了指定文件大小的单位选项进而搜索符合大小文件的功能,这个搜索也常常会让用户感到非常舒服(b:块, c:字节, w:字, k:千字节, M:兆字节, G:吉字节)。

在搜索之前我们先用ls(list)指令来查看下当前目录下的文件信息:

Linux/Unix下find命令的用法是什么

信息的第五列就是各文件目录的大小(字节),我们通过指定匹配条件来搜索:

Linux/Unix下find命令的用法是什么

经过测试,在开始目录下,文件类型为普通目录,文件大小大于30个字节的文件就是zl.txt了

⑦:基于文件权限和所有权的匹配,-perm选项指定了find指匹配指定权限的文件,参数为文件对应的权限码。

我们仍然可参考⑥中的所有文件信息的第一列,此处需要掌握一定关于文件权限的知识。如下我们查找权限为644的普通文件,即用户可读写,组用户可读,其他可读。

Linux/Unix下find命令的用法是什么

也可以用选项-user,匹配指定用户所拥有的文件,参数为用户名或者UID

⑧利用find执行相应操作,比如删除文件,使用-delete选项;删除测试目录下所有的.txt普通文件

Linux/Unix下find命令的用法是什么

还可以利用-exec选项结合其他命令对文件进行更高效的操作,更改文件的所属权,复制文件等,find命令使用一对花括号{}代表文件名,对于每一个匹配到的文件,find命令会将{}替换成相应的文件名; 如果-exec的命令有多个参数时,需要注意结尾使用 ” \; ” 或者 “+”,前者表示进行转义,不然系统会以为是find命令的结尾。

我们将测试目录下的所有的.txt文件由用户lihongbo转换到用户litao999,我们必须以root用户进行此操作,chown用于更改权限:

Linux/Unix下find命令的用法是什么

⑨:指定find跳过特定的目录:使用-prune选项可以跳过我们在搜寻的的一些明显我们不需要的目录

Linux/Unix下find命令的用法是什么

跳过了./test1目录

需要指出的是:选项出现的先后次序我们也应该考虑到内,因为它会影响到整条命令的执行效率。

上述就是小编为大家分享的Linux/Unix下find命令的用法是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯