在 Linux中find命令使用技巧

技术在 Linux中find命令使用技巧 在 Linux中find命令使用技巧不管我决心如何组织文件,似乎总有无法找到文件的时候。有时是因为我不记得最初的文件名,其他时候,我知道名字,但我不记得在哪里保

Linux中查找命令的使用技巧

不管我决心如何组织文件,似乎总有无法找到文件的时候。有时是因为我不记得最初的文件名,其他时候,我知道名字,但我不记得在哪里保存它了。甚至有时我需要一个我最初就没有创建的文件。但是,无论遇到什么困难,我知道在 POSIX 系统上,总是有 find命令可以帮助我。

安装 find

find命令是由POSIX规范定义的,它为测量POSIX系统创建了一个开放的标准,包括Linux、BSD和macOS。简而言之,只要你运行的是Linux、BSD或者macOS,那么find就已经安装好了。

然而,并不是所有的find命令都完全相同。例如,GNU的find命令有一些功能是BSD、Busybox或Solaris上的find命令可能没有或不具备的,但它们的实现方式不同。在本文中,我们使用findutils包中的GNU find,因为它很容易获得并且非常受欢迎。本文中演示的大多数命令都适用于find的其他实现,但是如果您在Linux以外的平台上尝试命令并获得意外结果,请尝试下载并安装GNU版本。

按名称查找文件

您可以使用正则表达式来定位具有完整或部分文件名的文件。find命令要求您给出要搜索的目录;指定搜索属性选项,例如,-name用于指定区分大小写的文件名;然后是搜索字符串。默认情况下,搜索字符串按字面意思处理:除非使用正则表达式语法,否则find命令搜索的文件名就是您在引号之间输入的字符串。

假设您的文档目录包含四个文件:foo、Foo、foobar.txt和foo.xml。

$ find ~-名称为“foo”

/家/礼服/文件/例子/foo

您可以使用-iname选项使其不区分大小写来扩展您的搜索:

$find~-iname'foo '

/家/礼服/文件/例子/foo

/家/礼服/文件/例子/Foov

通配符

您可以使用基本外壳通配符来扩展搜索。例如,*表示任意数量的字符:

$find~-iname'foo* '

/家/礼服/文件/例子/foo

/家/礼服/文件/例子/Foo

/home/tux/Documents/examples/foo . XML

/home/tux/Documents/范例/foobar.txt

代表单个字符:

$find~-iname'foo*。'

/home/tux/Documents/examples/foo . XML

/home/tux/Documents/范例/foobar.txt

这不是正则表达式语法,所以。在该示例中,仅显示了字母“点”。

正则表达式

您也可以使用正则表达式。像-iname和-name一样,有区分大小写和不区分大小写的选项。但不同的是-regex和-iregex搜索适用于整个路径,而不仅仅是文件名。这意味着如果你搜索foo,你不会得到任何结果,因为foo不匹配/home/tux/Documents/foo。相反,您必须搜索整个路径或在字符串开头使用通配符:

$find~-iregex '。*foo '

/家/礼服/文件/例子/foo

/家/礼服/文件/例子/Foo

查找近一周修改过的文件

要查找上周修改的文件,请使用-mtime选项和过去的天数(负数):

$find~-mtime-7

/家/礼服/文件/例子/foo

/家/礼服/文件/例子/Foo

/home/tux/Documents/examples/foo . XML

/home/tux/Documents/范例/foobar.txt

查找近几天修改的文件

您可以结合使用-mtime选项来查找最近几天修改过的文件。对于first -mtime参数,它指示文件上次修改的最近几天。第二个参数指示最大天数。例如,搜索修改时间超过1天但不超过7天的文件:

$find~-mtime 1-mtime-7

按文件类型限制搜索

通常指定查找文件的类型来优化查找结果。如果你不确定你在找什么,你不应该使用这个选项。但是如果你知道你在寻找文件而不是目录,或者目录而不是文件,那么这可能是一个很好的过滤器。选项是-type,其参数是表示不同类型数据的字母代码。最常见的有:

目录

文件

l链接文件

s形插座

命名管道(用于先进先出)

块设备(通常是硬盘)

以下是一些例子:

$ find ~-键入名称“Doc*”

/家/礼服/文件

$find~-typef-name'Doc* '

/home/tux/Downloads/10-doctor . gif

$find/dev-typeb-name'sda* '

/dev/sda

/dev/sda1

调整范围

默认情况下,find命令是递归的,这意味着它将在指定的目录中逐层搜索结果。这在大型文件系统中可能会变得难以承受,但是您可以使用-maxdepth选项来控制搜索深度:

$ find/usr-in ame ' * XML“| WC-l”

15588

$ find/usr-maxdepth2-iname ' * XML“| WC-l”

15

您也可以使用-mindepth来设置最小递归深度:

$ find/usr-mindepth 8-in ame ' * XML“| WC-l”

9255

下载速查表

本文只介绍find的基本功能,find是一个很好的搜索工具,但对于强大的Parallel命令来说,它也是一个非常有用的前端。学习find的原因有很多,所以下载我们免费的find Quick Table,它可以帮助你了解这个命令的更多信息。

地址:https://www.linuxprobe.com/find-linux.html

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/154993.html

(0)

相关推荐

  • 抖音点赞在线自助平台24小时,抖音24小时秒单业务平台好用吗

    技术抖音点赞在线自助平台24小时,抖音24小时秒单业务平台好用吗现在抖音火遍大江南北,玩抖音的人是越来越多,想要让自己的作品上热门,就少不了需要粉丝,很多同学想到了怎么快速涨粉丝涨赞等等,那么抖音1000粉丝和抖音100

    测评 2021年11月9日
  • 原来有openwrt怎么升级固件(openwrt升级固件时间15分钟)

    技术OpenWRT如何升级固件小编给大家分享一下OpenWRT如何升级固件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! OpenWRT

    攻略 2021年12月18日
  • QT5常用模块有哪些

    技术QT5常用模块有哪些这篇文章主要为大家展示了“QT5常用模块有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“QT5常用模块有哪些”这篇文章吧。Qt 5 与 Qt 4

    攻略 2021年11月23日
  • 美的电饭煲怎么用,美的电饭煲怎么正确使用

    技术美的电饭煲怎么用,美的电饭煲怎么正确使用1美的电饭煲怎么用、先用手紧紧的握住压力锅的锅盖手柄,顺时针方向旋转锅盖到压力锅的限位边,向上提起锅盖。2、取出电压力锅的内锅将需要进行烹调的食物和水放入内锅中,但是放进的食物

    生活 2021年10月27日
  • XMLHttpRequest中fetch_ajax请求的新写法是什么

    技术XMLHttpRequest中fetch_ajax请求的新写法是什么这篇文章主要讲解了“XMLHttpRequest中fetch_ajax请求的新写法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小

    攻略 2021年11月5日
  • 体表面积计算公式,基础代谢率对照表是什么

    技术体表面积计算公式,基础代谢率对照表是什么基础代谢率对照表是什么体表面积计算公式?基础代谢率对照表是指基础代谢率与年龄对应的表格。我国正常基础代谢率平均值如下表[kJ/(m²·h)]基础代谢率是指室温(18~25℃)条

    生活 2021年10月27日