Linux文件管理知识:查找文件(第二篇)

这篇具有很好参考价值的文章主要介绍了Linux文件管理知识:查找文件(第二篇)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上篇文章详细介绍了linux系统中查找文件的工具或者命令程序locate和find命令的基本操作。那么,今天这篇文章紧接着查找文件相关操作内容介绍。

Linux文件管理知识:查找文件(第二篇),linux,运维

Find命令所属操作列表中的条目,有助于我们想要的结果输出。上篇文章已讲到find 命令是基于搜索结果来执行操作命令程序。

预定义操作描述:

操作

描述

-delete

删除当前匹配的文件

-ls

对匹配的文件执行等同的ls -dils 命令。并将结果发送到标准输出

-print

把匹配文件的全路径名输送到标准输出。如果没有指定其它操作,这是默认操作

-quit

一旦找到一个匹配,退出

例如:

find ~   

find ~ -print

//此命令将home家目录中包含的每个文件和子目录输出。以一个列表的形式输出。两种命令的输出完全一致。

删除特定条件的文件

使用find 命令可以删除符合一定条件的文件。

例如:

find ~ -type f -name '*.BAK' -delete

//删除扩展名为“.BAK”(这通常用来指定备份文件)的文件, 在用户家目录及它的子目录下搜索以.BAK 结尾的文件名。一旦以.BAK 结尾的文件被找到后,就删除它们。

备注:当使用-delete 操作命令时,你肯定会格外小心。那我们怎么做更妥当呢?妥当的做法是我们可以先使用print程序命令测试下,是否符合我们要的搜索结果。

逻辑关系逻辑运算符

例如:

find ~ -type f -and -name '*.BAK' -and -print

这个程序命令一旦被执行,它就会搜索以.BAK后缀的相关文件,并将符合条件文件的相对路径名称标准输出给我们。命令执行的原因是由每个测试和操作之间的逻辑关系决定的。

那么逻辑运算符是如何影响命令如何执行的呢?

测试/行为

只有... 的时候,才被执行

-print

只有-type f and -name ’*.BAK’ 为真的时候

-name

‘*.BAK’ 只有-type f 为真的时候

-type f

总是被执行,因为它是与-and 关系中的第一个测试/行为

此表可以看出测试和行为之间的逻辑关系决定了哪一个会被先执行,同时测试和行为的顺序也很重要。

我们重新调整下测试和行为之间的顺序:让-print 行为是第一个,那么结果会截然不同:

例如:

find ~ -print -and -type f -and -name '*.BAK'

上述命令会输出每个文件(-print 行为总是为真),然后才是测试文件类型和指定的文件扩展名。

用户定义操作

除了预定义的操作外,我们可以调用任意的命令。通常情况下是通过-exec 命令。

例如:

-exec command {} ;

command 代表一个命令的名字,{} 代表当前路径名的符号表示,分号代表必要的分隔符,表明命令的结束。

当然,如何交互式地执行一个用户定义的操作行为?通过使用-ok 操作来代替-exec,它在执行每个指定的命令之前,会提示用户:

find ~ -type f -name 'foo*' -ok ls -l '{}' ';'

< ls ... /home/me/bin/foo > ? y

-rwxr-xr-x 1 me me 224 2007-10-29 18:44 /home/me/bin/foo

< ls ... /home/me/foo.txt > ? y

-rw-r--r-- 1 me me 0 2008-09-19 12:53 /home/me/foo.txt

Xargs命令

xargs 命令的用法—将标准输入或管道构造的参数列表转换成某一特定命令的参数列表并运行该特定命令。通俗的来讲就是xargs取其中一个命令的输出结果作为另外一个命令的参数列表来执行。对于我们的例子,我们可以这样使用它:

find ~ -type f -name 'foo*' -print | xargs ls -l

-rwxr-xr-x 1 me me 224 2007-10-29 18:44 /home/me/bin/foo

-rw-r--r-- 1 me me 0 2008-09-19 12:53 /home/me/foo.txt

这里我们可以得到一个结论:

find命令的执行结果通过管道符|传递给xargs命令,然后,xargs命令将find命令的输出结果作为ls命令的参数,最后再执行ls -l命令。

备注:当某一命令行中的参数列表数量是有限制的,一旦超过linux系统支持的最大长度时,那么xargs命令将会执行该命令,然后一直重复这个过程直到耗尽标准输入。

接下来咱们再看下如何创建一个包含许多子目录和文件:

[root@linuxprobe~]$ mkdir -p playground/dir-{00{1..9},0{10..99},100}

[root@linuxprobe~]$ touch playground/dir-{00{1..9},0{10..99},100}/file-{A..Z}

Linux命令的强大功能真是令人惊叹啊!仅仅用了这两行命令,就可以创建一个包含一百个子目录,而且每个子目录中包含了26 个空文件。

现在咱们看看Linux命令是如何实现这个奇迹的!

一个简单的mkdir命令,一个特异的shell 扩展(花括号)包括一个touch命令。通过组合mkdir 命令和-p 参数选项(导致mkdir 命令创建指定路径的父目录),以及花括号,这样的话就能够创建一百个目录。

备注:touch命令通常是用来设置或更新文件的访问,更改,和修改时间的属性。

今天关于linux系统文件查找命令的运用介绍就暂时结束了。locate,updatedb,find 和xargs 命令都是GNU 项目findutils的一部分。这个GUN 项目提供了大量的相当出色的在线文档,我们都需要好好拜读下这些文档。所以强烈建议大家可以参考下《linux就该这么学》这本书,对于linux系统文件管理层面的介绍很详细!文章来源地址https://www.toymoban.com/news/detail-686801.html

到了这里,关于Linux文件管理知识:查找文件(第二篇)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从小白到大神之路之学习运维第44天---第三阶段----拓展知识-----文件管理命令(find+sed+awk)、pycharm工具

    第三阶段基础 时  间:2023年6月20日 参加人:全班人员 内  容: 目录 一、文件管理命令 find 1. 根据文件名查找文件 2. 根据文件类型查找文件 3. 根据文件大小查找文件 4. 根据时间戳查找文件 5. 组合多个条件查找文件 Sed 1. 替换文本 2. 插入和删除行 3. 格式化输出 总 结: a

    2024年02月09日
    浏览(52)
  • 【知识点随笔分享 | 第二篇】众多的字符集

    目录 前言: 字符与字符集: 字符集编码的发展(时间顺序): 总结:          你是否有好奇过文字是怎么在电脑中显示出来的?为什么我们通过输入法就可以输入想要得到的文字?为什么我们粘贴有些网站的文字,复制到自己的电脑上就成乱码?为什么我们有的时候

    2024年02月14日
    浏览(41)
  • Linux系统知识4—Linux的root用户,su 和 exit 命令,sudo 命令,用户和用户组管理,getent,查看权限控制,修改权限控制 -chmod,修改权限控制-chown

    目录 一.Linux的root用户 1.1 root用户(超级管理员) 1.2 su 和 exit 命令 1.3 sudo 命令 1.为普通用户配置 sudo 认证 二.用户和用户组管理 2.1用户,用户组 2.2用户组的管理 2.3用户管理 2.4.getent 三.查看权限控制 3.1认知权限信息 1.序号1,表示文件,文件夹的权限控制信息 2. 序号2,表

    2024年01月17日
    浏览(72)
  • 【从零开始学习Java重要知识 | 第二篇】深入解读ThreadLocal类

    目录 前言:  ThreadLocal:  ThreadLocal的内部结构:   ThreadLocal的常用方法: 1.set方法: 2.get方法: 3.setInitialValue方法 remove方法(): ThreadLocalMap:​编辑 成员变量: 存储结构:  高频考点: 总结:          当我们编写多线程程序时,经常会遇到一些需要在线程之间共

    2024年01月18日
    浏览(48)
  • Baklib知识管理体系:将知识管理深化到企业中

    知识管理是对企业内部的有价值的方案、策划、成果、经验进行分类存储和管理,积累知识资产,并且挖掘其潜在价值,促进知识的学习、共享、培训、再利用和创新,降低组织的运营成本,强化核心竞争力。 知识管理体系总体上分为知识管理理念和知识管理软硬件两大部分

    2023年04月08日
    浏览(45)
  • 初识Linux篇:第二篇

    😁👉本篇主要介绍Linux的一些指令的应用👈 在学习Linux的基本指令之前,让我们先详细的认识一下 操作系统和命令行的概念 ; 🤔什么是操作系统(OS)呢? 操作系统是一款进行 软件资源与硬件管理 的 软件 ; 🤔🤔那么操作系统在计算机软硬件体系结构中大概在什么位置呢

    2024年02月04日
    浏览(45)
  • 项目管理十大知识领域之项目采购管理

    一、项目采购管理的定义与概述 项目采购管理是指在项目实施过程中,对相关产品、服务或工程进行采购的管理活动。其概述包括确定采购需求、制定采购计划、供应商选择、合同签订、供应管理和结算支付等环节。项目采购管理的定义还涉及对采购目标的明确界定,以及与

    2024年01月21日
    浏览(36)
  • 项目管理十大知识领域之项目干系人管理

    一、项目干系人管理的概念解析 项目干系人管理是指在项目执行过程中,对项目相关方的需求进行识别、分析和管理的过程。项目干系人管理的核心在于有效地沟通、协调和满足各方的需求,以确保项目能够顺利实施并达到预期的成果。在现代项目管理实践中,项目干系人管

    2024年01月21日
    浏览(45)
  • 【Python基础练习100题--第二篇:文件篇】

    这些题都是在B站的练习题,链接在这 对于刚学python的新手来说十分的适合, 可以加强和巩固我们的基础。 嘿嘿 一起噶油吧!🍉 🍉 学无止境,都看到这了,点个赞关注支持一下呗!嘿嘿(* ̄︶ ̄)

    2024年02月02日
    浏览(47)
  • Qt文件系统源码分析—第二篇QSaveFile

    深度 首先指定深度分析深度,否者会陷入代码海洋之中。 本文只分析到Win32 API/Windows Com组件/STL库函数层次,再下层代码不做探究 本文主要了解QSaveFile及其具体实现,使用到父类数据的地方只讨论关键点 QT Private 类 大部分Qt类有一个类名+Private构成的类,这个类主要用于保存

    2024年02月03日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包