1852_bash中的find应用扩展

news2024/11/26 23:18:00

Grey

全部学习内容汇总: https://github.com/GreyZhang/toolbox

1852_bash中的find应用扩展

find这个工具我用了好多年了,但是是不是真的会用呢?其实不然,否则也不会出现这种总结式的笔记。其实,注意部分小细节之后,find可以很好的实现我们对于文件存放位置的搜索需要。

主题由来介绍

一直以来,我用find直接搜索我磁盘上的文件去看是否有重复的文件可以清除。常用的一种方式为,首先切换到磁盘根目录,之后执行如下的命令:

find -iname *keyword*

我通过上面的搜索命令来匹配带有关键词的文件,-iname用以说明执行的方式是按照忽略大小写形式搜索文件名称。一直以来,在我的树莓派以及NAS上做这样的搜索到时没遇到啥问题。但是,偶然一次我在git bash中搜索 emacs lisp所有文件的时候失败了。我输入了如下的命令:

find -iname *.el

这是我搜索出来的结果,我知道我的这个目录中这样的文件很多,因此接着就发现了不正确。其实,我这一次的搜索命令格式与之前的确也有不同,这一次的表达式中少了一个星号。不过,还是看得出来我对这个命令掌握的不是很熟悉。

为了排除这个是工具的问题,同样的测试我在不同的平台上都做了尝试。同时,我还查看了软件的版本,首先确认全都是GNU的工具,最多版本略有差异。结果,在不同的平台上测试下来也是如此。为此,我觉得我应该探索并总结下find的用法了。

资料寻找与分析

这样的资料还是很多的,一如既往,我还是以英文搜索为主: Find Command in Linux (Find Files and Directories) | Linuxize

这一次找到的资料网页,广告有一些多,占据了几乎将近一半的版面。不过还好,知识内容还是值得的。

  • 我前面操作失败似乎一个特点就是没有进行目录级的操作,只是搜索了当前的目录。而find本身是具备这样的功能的,这毫无疑问,之前也已经用过很多了。
  • 除了简单的文件名称搜索之外,find其实还可以搜索很多其他的属性,比如说权限、类型、日期、拥有者、大小等。从这里的属性看,其实这个也是更多的在unix的平台上使用。
  • 这里给出来了这个命令的基本语法形式,从这里看,其实我平时的用法少了很多参数。可能正好有默认的行为满足了我的搜索需求。
  • 上面的三段参数分别是文件的属性信息、搜索的目录、搜索内容形式。

  • 首先需要说明的是上面的例子中,Copy是多余的。
  • 这个搜索的命令形式很好懂,不过为什么是符号链接我不是很清楚。不知道是否是快捷方式之类的?不过话又说回来,可能我用到的概率并不会很大。

  • 按照文件名称搜索,这个可能是我用到的最多的一种用法。
  • -iname中的i代表忽略大小写,这个也很容易记忆。

  • 这一个例子我觉得对我来说很有用。
  • 首先是学到了一个按照类型处理的方式。
  • 接下来,着色的部分很可能是我之前遇到问题的原因。稍后,我增加转义做一个测试看看效果。
  • 最后,还可以通过-not来搜索不满足的结果。
  • 这样综合看下来,搜索的功能以及有很大的灵活度了。而且,从扩展名的搜索这部分来看,其实使用的搜索方式还是正则表达式。

  • 通过上面的结果看,通过转义的操作的确是让之前“异常”的搜索出现了期待的结果。
  • 不过,结合上面的说明,后续最好还是规范化一些不要继续使用缺省的参数造成误解。

  • 针对前面看到的例子中type后面的参数f,这里也看到了解释的信息。

  • 这里给出来了一个按照大小来搜索文件的方式,里面可以选择不同的单位。
  • 实际的测试中,这个选项可以跟其他的选项组合使用。
  • 如果需要大于对应大小的文件,可以在参数之前写一个+,如果小于则是写-。

  • 上面是实际测试的一个效果。

其他

除了上面的信息之外,find还支持按照权限、所有者、用户组以及时间等信息进行搜索。目前看来,我现在的需要可能是比较纯粹的文件内容管理。因此上面的内容暂且可以不去尝试了。

小结

简单了解了一下,算是又增加了一些见识。不过,从了解的过程中看得出来,现在了解的功能还是比较皮毛的内容。比如说,如何更好地使用正则表达式来进行搜索等。这些,留待以后有需要的时候再去探索。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1319151.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[AutoSar]基础部分 RTE 介绍

目录 关键词平台说明一、什么是RTE二、RTE的主要功能 关键词 嵌入式、C语言、autosar、EcuM、wakeup、flex 平台说明 项目ValueOSautosar OSautosar厂商vector芯片厂商TI编程语言C,C编译器HighTec (GCC) 一、什么是RTE RTE(Run-Time Environment&…

Docker 的基本概念、优势、及在程序开发中的应用

Docker 是一种容器化平台,它通过使用容器化技术,将应用程序及其依赖性打包到一个独立的、可移植的容器中,从而实现应用程序的快速部署、可靠性和可扩展性。 下面是 Docker 的一些基本概念和优势: 容器:Docker 使用容器化技术,将应用程序及其依赖性打包到一个可移植的容器…

网络基础(十一):VRRP原理与配置

目录 前言: 1、VRRP的基本概述 2、VRRP的基本原理 2.1VRRP的基本结构 2.2设备类型 2.3状态机 2.4VRRP路由器的抢占功能 2.5VRRP路由器的优先级 2.6VRRP工作原理 2.7主备路由器的工作内容 3、VRRP的基本配置 3.1配置主路由器和备用路由器 3.2配置PC1与P…

DOM树和DOM对象与JS关系的深入研究

const和let使用说明 var不好用,我们如果用变量都是用let,如果用常量乃是不变的量,我们用const,见let const知变量是否可变。比如一个常量在整个程序不会变,但是你用let,是可以的。但是let最好与内部变量改…

【二分查找】【z型搜索】LeetCode240:搜索二维矩阵

LeetCoe240搜索矩阵 本文涉及的基础知识点 二分查找算法合集 题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例 1: 输入:…

爬虫练习-获取imooc课程目录

代码: from bs4 import BeautifulSoup import requests headers{ User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0, }id371 #课程id htmlrequests.get(https://coding.imooc.com/class/chapter/id.html#Anchor,head…

【FPGA】电梯楼层显示(简易)

前言 这是作者室友的项目,本来不管作者事儿的,但是后来听到说是室友去网上找人花了80块买了个劣质的,不仅是从CSDN上抄的,而且使用的板子还不符合室友的要求。可叹作者心软啊,顺便给室友做了。 在代码实现部分会给出设…

手机上的python怎么运行,python在手机上怎么运行

大家好,本文将围绕python程序如何在手机端运行展开说明,python程序如何在手机上运行是一个很多人都想弄明白的事情,想搞清楚手机上的python怎么运行需要先了解以下几个事情。 如何用手机编程Python? 1.QPython3:这是一…

高性价比AWS Lambda无服务体验

前言 之前听到一个讲座说到AWS Lambda服务,基于Serverless无服务模型,另外官网还免费提供 100 万个请求 按月,包含在 AWS 免费套餐中是真的很香,对于一些小型的起步的网站或者用户量不大的网站,简直就是免费&#xff…

liunx之Samba服务器

环境:虚拟机CENTOS 7和 测试机相通 一、Samba服务器_光盘共享(匿名访问) 1.在虚拟机CENTOS 7安装smb服务,并在防火墙上允许samba流量通过 2. 挂载光盘 3.修改smb.conf配置文件,实现光盘匿名共享 4. 启动smb服务 5.在…

数据结构-猴子吃桃问题

一、需求分析 有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。要求: 1)采用数组数据结构实现上述求解; 2)采用链数据结构实现上述…

EM(Expectation-Maximum)算法

EM算法 简介 EM算法的核心分为两步 E步(Expection-Step)M步(Maximization-Step) 因为在最大化过程中存在两个参量 r , θ r,\theta r,θ,其中若知道 r r r,则知道 θ \theta θ;若知道 θ \…

04_Web框架之Django一

Web框架之Django一 学习目标和内容 1、能够描述Django的作用 2、能够使用Django创建应用 3、能够使用GET和POST请求方式进行传参 4、能够使用Django的函数式方法定义视图 5、能够进行Django的配置文件修改 6、能够基本使用Django的路由定义 一、Django相关介绍 1、什么是Djan…

运维实践|采集MySQL数据出现many connection errors

文章目录 问题出现问题分析当前环境问题分析 解决方案1 检查调度事件任务是否开启2 开启调度事件任务3 创建一张日志表4 创建函数存储过程5 创建事件定时器6 开启事件调度任务7 检查核实是否创建 总结 问题出现 最近在做OGG结构化数据采集工作,在数据采集过程中&am…

SIEM 解决方案的不同部署方式,如何选择SIEM 解决方案

安全信息和事件管理(SIEM)作为一种网络安全解决方案,是多种技术的融合,这些技术结合了包括安全信息管理和安全事件管理在内的流程。简单来说,SIEM 解决方案是一种重要的安全工具,它收集、存储和分析来自整个…

QT自带打包问题:无法定位程序输入点?metaobject@qsound

文章目录 无法定位程序输入点?metaobjectqsound……检查系统环境变量的配置:打包无须安装qt的文件 无法定位程序输入点?metaobjectqsound…… 在执行release打包程序后,相应的release文件夹下的exe文件,无法打开 如有错误欢迎指出 检查系…

Java架构师系统架构内部维度分析

目录 1 导语2.1 安全性维度概述2.2 流程安全性2.3 架构安全性2.4 安全维度总结3 伸缩性维度概述和场景思路3.1 无状态应用弹性伸缩3.2 阿里云Knative弹性伸缩3.3 有状态应用弹性伸缩3.4 伸缩性维度总结想学习架构师构建流程请跳转:Java架构师系统架构设计 1 导语

轻量封装WebGPU渲染系统示例<51>- 视差贴图(Parallax Map)(源码)

视差纹理是一种片段着色阶段增强材质表面凹凸细节的技术。 当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/material/src/voxgpu/sample/ParallaxTexTest.ts 当前示例运行效果: 此示例基于此渲染系统实现,当前示例TypeScript源码如…

Spring之容器:IOC(2)

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

Docker实战案例研究:深入行业应用与最佳实践

Docker作为一种轻量级、可移植、可扩展的容器化技术,在各行各业都得到了广泛应用。本文将通过深入实际案例,介绍Docker在不同行业的应用以及相应的最佳实践,提供更加丰富的示例代码,以帮助大家更全面地理解和运用Docker的强大功能…