1852_bash中的find应用扩展

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.mzph.cn/news/229283.shtml

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

相关文章

liunx之Samba服务器

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

GB/T 19536-2015 集装箱底板用胶合板检测

集装箱底板用胶合板是指由木质单板或竹质单元与木质单板复合而成的,具有防虫、防腐及耐候性能,用于一般货物集装箱底板的胶合板。 GB/T 19536-2015集装箱底板用胶合板测试: 测试项目 测试方法 含水率 GB/T 17657 密度 GB/T 17657 静曲…

编写自定义函数找出二维数组(3*4)中元素的最大值与最小值,并返回其最大值与最小值,并在main函数中测试结果

编写自定义函数找出二维数组(3*4)中元素的最大值与最小值,并返回其最大值与最小值,并在main函数中测试结果。要求: 数组在main函数中使用随机函数获得赋值;自定义函数返回类型为void;输出结果在…

手麻、腿麻、麻痛…背后竟隐藏7大疾病!多一个人知道,少一个悲剧!

手脚麻木背后的7大病症:骨病、脑梗、肿瘤…… 1、神经问题 上图四只手上橙色的区域代表了麻木感,如果您的手麻集中在无名指和小指的区域,您可以拿一张纸,用五个手指分别试着夹住,检验您的五个手指力量;您还…

(5)shell命令以及Linux的权限

写在前面 本章我们将重点讲解 Linux 权限,这是 Linux 基础部分中非常重要的一部分。内容比较干,我会稍稍正经些去讲解。话不多说,我们直接切入正题。 shell 命令及运行原理 严格意义上说的是一个操作系统,我们称之为 —— &…

Logstash访问安全访问Elasticsearch集群

生成logstash证书: opensal pkcs12 -in elastic-stack-ca.p12 -clcerts -nokeys > logafash.cer openssl x509 -in logstash.cer -out logstash.pem 编排配置文件

xtu oj 1328 数码和

题目描述 一个10进制数n在2∼16进制下可以得到的不同的数码和,求在这些数码和中出现次数最多的数码和。 比如20, 其中数码和2和4分别出现了3次,为最多出现次数。 输入 第一行是一个整数T(1≤T≤1000),表示样例的个数。 以后每行…

Sherlock:社交媒体账号搜索工具 | 开源日报 No.111

sherlock-project/sherlock Stars: 45.1k License: MIT 这个项目是一个社交媒体账号搜索工具,名为 Sherlock。它可以通过用户名在不同的社交网络上追踪用户的账号。 支持单个或多个用户搜索提供 Docker 容器化部署方式开放源代码并欢迎贡献者参与开发包含详细测试…

Shell三剑客:sed(命令)一

一、删除命令:d [rootlocalhost ~]# sed -r /root/d passwd.txt bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync…

【深度学习】重要概念

文章目录 1. 前向传播、反向传播和计算图2. 数值稳定性和模型初始化3. 环境和分布偏移 1. 前向传播、反向传播和计算图 前向传播:按顺序(从输入层到输出层)计算和存储神经网络中每层的结果。计算图:可视化计算中操作符和变量的依…

C# 内存的分配管理

using System.ComponentModel; using System.Runtime.InteropServices; //内存的分配 int n 100000;//长度 IntPtr buffer Marshal.AllocHGlobal(sizeof(int) * n); try { var t buffer (n * 10) * sizeof(int); var p Marshal.PtrToStructure<int>(t); /…

Vim入门

Vim使用入门 1.Vim编辑器的三种常用模式 一般模式&#xff1a;刚打开文件是它&#xff0c;从编辑模式按“ESC”退回的模式也是它。可以执行各种编辑操作&#xff0c;如移动光标、复制、粘贴、删除、查找替换等 ; 编辑模式&#xff1a;在一般模式下按下 i、I、a、A、o、O 等键…

CesiumLab地理信息基础数据处理平台 各类数据类型介绍、发布数据介绍

目录 0 引言1 CesiumLab2 数据处理模块2.1 输出格式&#xff1a;切片文件格式2.2 输入格式2.2.1 传统GIS数据2.2.2 人工模型2.2.3 BIM模型2.2.4 倾斜实景数据2.2.5 点云数据 3 发布服务功能3.1 拓展&#xff1a;其他平台发布服务功能 &#x1f64b;‍♂️ 作者&#xff1a;海码…

再怎么“顽固”的应用程序,也很难经得住以下的卸载方法

卸载程序是我们经常尝试的事情。这可能是因为我们不再需要程序,该程序可能会导致问题等。有时,如果你试图卸载某个程序,你会收到一个错误,但卸载没有发生。在这种情况下,你可以选择强制卸载。在本教程中,我将向你展示如何在Windows 10/11计算机上强制卸载程序。 ​控制面…

Mybatis的插件运⾏原理,如何编写⼀个插件?

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

2024年最免费的DAW混音编曲FL Studio21.2.中文版下载

FL Studio 简称FL&#xff0c;全称Fruity Loops Studio&#xff0c;因此国人习惯叫它"水果"。目前最新版本是FL Studio21.1.1.3750版本&#xff0c;它让你的计算机就像是全功能的录音室&#xff0c;大混音盘&#xff0c;非常先进的制作工具&#xff0c;让你的音乐突破…

AUTOSAR组织引入了Rust语言的原因是什么?有哪些好处?与C++相比它有什么优点?并推荐一些入门学习Rust语言链接等

AUTOSAR(汽车开放系统架构)是一个由汽车制造商、供应商和其他来自电子、半导体和软件行业的公司组成的全球发展伙伴关系,自2003年以来一直致力于为汽车行业开发和引入开放、标准化的软件平台。 AUTOSAR 最近宣布成立一个新的工作组,用于探索在汽车软件中使用 Rust 编程语言…

C语言实现在顺序表中找到最大值

用C语言实现在顺序表中找到最大值&#xff1a; #include <stdio.h> #define MAX_SIZE 100 int findMax(int arr[], int size) { int max arr[0]; // 假设第一个元素为最大值 for (int i 1; i < size; i) { // 从第二个元素开始遍历列表 if (…

Java八股文面试全套真题【含答案】- Redis篇

请看下面列举的50个关于Redis的经典面试问题和简短答案&#xff1a; Redis是什么&#xff1f;简要介绍一下Redis的特点。 Redis是一个开源的高性能键值存储数据库&#xff0c;支持多种数据结构&#xff0c;如字符串、列表、集合、哈希和有序集合等。 特点包括快速、可持久化、支…

升级Xcode15,iOS17后问题解决

1、Could not build module ‘WebKit’ 报错 解决方案&#xff1a; 编辑文件 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.0.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebsiteDataStore.h 将里面…