Linux的find命令使用指南及实际shell用例

devtools/2024/10/22 7:59:41/

Linux的find命令使用指南及实际shell用例

  • 基本语法
  • 常用选项
  • 实际shell用例

find命令是Linux和UNIX系统中一个非常强大的工具,它用于在指定目录下根据给定条件搜索文件。find命令功能强大,使用灵活,可以组合多种条件和选项来精确查找文件,并对查找到的文件执行指定的操作。
在这里插入图片描述

基本语法

find命令的基本语法如下:

find [pathname] [options] [operands]
  • pathname:指定要查找的文件所在的目录。如果不指定,默认从当前目录开始。
  • options:指定查找的条件,如文件名、文件类型、大小、修改时间等。
  • operands:指定对查找到的文件执行的操作,如打印文件名、删除文件等。

常用选项

  1. 按名称查找

    • -name "字串":查找文件名匹配所给字串的所有文件,支持通配符*?[]
    • -iname "字串":忽略大小写地查找文件名匹配所给字串的所有文件。
    • -lname "字串":查找文件名匹配所给字串的所有符号链接文件。
  2. 按文件类型查找

    • -type x:查找类型为x的文件,x可以是以下字符之一:
      • b:块设备文件
      • c:字符设备文件
      • d:目录文件
      • p:命名管道(FIFO)
      • f:普通文件
      • l:符号链接文件
      • s:socket文件
  3. 按文件大小查找

    • -size n[bckw]:查找指定文件大小的文件,n后面的字符表示单位,缺省为b(512字节的块)。
  4. 按修改时间查找

    • -mtime n:查找n天以前被修改过的所有文件。
    • -amin n:查找n分钟以前被访问过的所有文件。
    • -cmin n:查找n分钟以前文件状态被修改过的所有文件。
    • -mmin n:查找n分钟以前文件内容被修改过的所有文件。
  5. 按文件权限查找

    • -perm 权限:查找具有指定权限的文件和目录,权限的表示可以如711,644。
  6. 按用户和组查找

    • -user '字串':查找属于用户名为所给字串的所有的文件。
    • -group '字串':查找属于用户组名为所给字串的所有的文件。
    • -uid n:查找属于ID号为n的用户的所有文件。
    • -gid n:查找属于ID号为n的用户组的所有文件。
  7. 按路径名查找

    • -path '字串':查找路径名匹配所给字串的所有文件,字串内可用通配符*?[]
  8. 其他常用选项

    • -empty:查找大小为0的目录或文件。
    • -print:将搜索结果输出到标准输出。
    • -exec command {} \;:对查找到的文件执行指定的shell命令。

shell_60">实际shell用例

  1. 在当前目录及子目录下查找以.txt结尾的文件
find . -name "*.txt"
  1. 查找当前目录下大于1M的文件
find . -size +1M
  1. 查找当前目录下的普通文件
find . -type f
  1. 查找1天内修改过的文件
find . -mtime -1
  1. 查找权限为644的文件
find . -perm 644
  1. 查找属于特定用户的文件
find . -user username
  1. 组合多个条件查找
find . -size +500k -name "*.zip" -mtime -10
  1. 对查找到的文件执行删除操作
find . -name "*.tmp" -exec rm -f {} \;
  1. 查找并删除特定目录下的过期文件
find /path/to/search -name "*.tmp" -mtime +30 -exec rm {} \;
  1. 查找并压缩文件
find . -size +1M -exec gzip {} \;
  1. 查找并列出特定目录下的所有目录
find /path/to/search -type d
  1. 忽略特定目录进行查找
find . -path './src/emacs' -prune -o -print
  1. 按深度搜索
find . -maxdepth 1 -name "*sql"
  1. 查找并显示文件内容
find . -name 'main*' -exec more {} \;
  1. 查找隐藏文件
find $HOME -type f -name ".*"

通过组合不同的选项和表达式,find命令可以完成各种复杂的文件查找任务。在实际使用中,可以根据具体需求灵活运用这些选项来满足不同的查找需求。


http://www.ppmy.cn/devtools/127779.html

相关文章

程序员的浪漫之给对象爬数据,没想到过程中竟然被写接口的老哥字段命名给秀到了!

目录 一、序言二、分析需求三、找数据分析字段四、建个表开爬数据五、结语 一、序言 最近对象转了销售岗,她的领导布置了项任务,一周要找500个对标客户的联系电话。看她又上天眼查、企查查、爱企查,还上各种采购平台手动抄采购负责人的信息和…

semi-Naive Bayesian(半朴素贝叶斯)

semi-Naive Bayesian(半朴素贝叶斯) 引言 朴素贝叶斯算法是基于特征是相互独立这个假设开展的(为了降低贝叶斯公式: P ( c ∣ x ) P ( c ) P ( x ∣ c ) P ( x ) P(c|x) \frac {P(c)P(x|c)}{P(x)} P(c∣x)P(x)P(c)P(x∣c)​中后验概率 P …

基于几何约束的深度学习建筑震害自动识别与评估研究【附代码】

(1)提出建筑地震损伤识别评估几何约束深度学习框架 我国地域辽阔且地质构造复杂,地震等自然灾害频发,严重威胁城市建筑群服役寿命和人民生命财产安全。震后建筑损伤评估对灾后应急部署及恢复重建至关重要。传统基于结构动力学响应…

期刊论文投稿指南:如何利用ChatGPT精准选择合适的期刊?

知学术AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 在学术论文的写作与发表过程中,选择合适的期刊往往是投稿成功的关键一步。面对众多期刊,研究者常常感到迷茫,不知道该如何匹配期刊与自己的研究方向。这时&#xf…

windows环境下vscode编写c语言连接mysql

创建一个文件夹test02 在文件夹中创建test.c文件 用vscode打开test02文件夹 自动生成tasks.json和launch.json文件,需要安装这里通C/C Runner插件来自动生成json文件和一些文件夹。 接下来配置mysql 本地已经安装了mysql数据库,此安装过程省略。 有…

boost搜索引擎

图片今天插入的排版和格式都有问题,明天早上起来马上研究修改,先发一下qwq 为什么使用‘\3’? \3 在ASSCII码表中是不可以显示的字符,我们将title、content、url用\3进行区分,不会污染我们的文档,当然你也…

优阅达携手 Theobald 亮相新加坡科技周,助力企业 SAP 数据集成与应用

针对不同用户需求量身定制解决方案,帮助企业轻松应对从数据提取到分析、从开发到流程管理的 SAP 数据挑战。 上周,2024 新加坡科技周在滨海湾金沙会议展览中心圆满落幕。在为期两天的活动中,七大专题展览同时进行,超过 2,000 家…

拼三角问题

欢迎来到杀马特的主页:羑悻的小杀马特.-CSDN博客 目录 一题目: 二思路: 三解答代码: 一题目: 题目链接: 登录—专业IT笔试面试备考平台_牛客网 二思路: 思路:首先明白能组成三角形…