一般来说,find 是指查找文件,以文件名为依据,当然也可以指目录,而grep是查找字符串,以查找内容为主。当然二者还可以混合使用。
find 格式
find [path] [options] [tests] [actions]
几个简单例子
find . -name test.txt -print
find / -type d test
find . -name "test*"
find /bin /usr/bin -name test
可以看出来,路径可以是绝对路径,也可以是相对路径,同时也可以是多个路径,选项一般使用的比较少,测试就是这里所用的-name, -type 等,action一般是print,默认的就是打印出来,也可以使用其他的ls, -exec 等
更具体的参数:
主要的一些选项如下:
-depth 在查看目录本身以前要先搜索目录中的内容
-follow 跟随符号链接
-maxdepths N 在搜索一个目录时至多搜索N层
-mount(或-xdev) 不要搜索其他的文件系统
主要的一些测试项目如下:
-atime N N天以前访问的文件
-mtime N N天以前修改的文件
-name pattern 除了路径,与指定的类型匹配的文件名.为了保证指定的类型传递给find命令而并不是立即被Shell赋值,指定的类型必须用引号进行引用.用引号的时候,可以用匹配,也就是文件名模糊查找,否则认为是文件名精确查找
-newer otherfile 与otherfile文件相比要新的文件
-type C C类型的文件,而这里的C可以指定的一种类型.最常用的是d代表目录,而f是指普通的文件.对于其他的文件类型,我们可以查看手册页.
-user username 指定的用户所拥有的文件
我们也可以使用运算符进行测试的组合.大多数的有两种格式:短格式和长格式.
! -not 测试的反
-a -and 所有的测试必须为真
-o -or 测试中某一个为真
主要的一些动作为:
-exec command 执行一个命令.这是我们最常执行的动作.
-ok command 与-exec相类似,所不同的只是他会提示用户在执行将要执行的命令之前进行命令的确认.
-print 打印出文件名
-ls 使用ls命令列出当前的文件
-exec和-ok命令会同一行的参数子序列作为他的参数的一部分,直到遇到一个终结符/;序列.对于-exec和-ok来说字符串{}是珍上特殊的类型,而且会为当前文件的绝对路径所替换.
一个例子
find . -newer while2 -type f -exec ls -l {} /;
查找当前路径下,比while2要新的,并且是常规得文件,并按ls -l列出来
注意一个发现,-name 会递归到子目录,如果不想查找子目录,可以限定查找的深度加选项-maxdepths 1表示只在当前目录,不到子目录下找。
但是不知为什么,我测试的-newer只适用于当前目录,不进行子目录查找
grep
grep [options] PATTERN [FILES]
grep 用于查找文件中的字符串,功能非常强大,也可以和find合用,作为-exec得命令
常用例子
grep abc ./* 在当前路径下查找所有文件中含abc字符串的文件,并把行打印出来
选项主要有:
-c 打印出匹配行的总数,而不是打印出匹配的行
-E 打开扩展表达式
-h 禁止将在其中查找到匹配内容的文件名作为输出行的前缀
-i 忽略大小写
-l 列出带用匹配行的文件名,而不是输出实际的匹配行
-v 将匹配类型转换为选择不匹配的行而不是匹配的行
更复杂的匹配就要使用正则表达式
正则表达式中的一些特殊字符
^ 在一行的开头
$ 在一行的结尾
. 任意一个单一字符
[] 方括号中所包含是字母的范围,其中的任何一个都可以进行匹配,例如a-e的字母范围,或者是我们可以使用^来进行反义.
如果我们要将他们作为普通的字符来使用就要在这些字符前面加上/.所以如果我们要查找一个$字符,我们就要使用/$来进行查找.
还有一些扩展的匹配
? 可选的匹配,但是最多匹配一次
* 必须匹配0个或是多个项目
+ 必须匹配1个或是多个项目
{n} 必须匹配n次
{n,} 必须匹配n次或是更多次
{n,m} 匹配范围为n次到m次,包括m次
例子:
grep e$ test.txt
搜索以e结尾的匹配行
grep -E [a-z]/{10/} words2.txt
搜索查找10个字符长的小写字母的单词
更复杂的以后慢慢使用中了解
相关推荐
Linux Find命令是Linux系统中一个极其重要的工具,它允许用户在文件系统中查找符合特定条件的文件和目录。这个命令的灵活性和强大性使得它成为系统管理员和开发者的必备技能。下面将详细介绍Linux Find命令的一些...
"linux下find命令的用法" Linux 操作系统下的文件查找命令是 find 命令,这个命令可以帮助用户在 Linux 系统中快速查找需要的文件。find 命令的使用方法非常多样化,可以根据文件名、文件大小、文件类型、修改时间...
使用find命令查找Linux中的隐藏文件的方法 find命令是Linux和Unix系统中最强大和灵活的命令之一,能够根据不同的选项和参数来实现各种文件搜索和管理任务。下面将详细介绍如何使用find命令查找Linux中的隐藏文件。 ...
### Linux下的find命令查找与排除命令详解 在Linux系统中,`find`命令是一个非常强大的工具,用于在文件系统中搜索文件。通过结合不同的选项和参数,用户可以精确地定位到所需的文件或目录。本文将重点介绍如何使用...
仿照unix操作系统中的find命令,在实现一个myfind命令。myfind命令从指定的目录下开始,递归地查找指定文件
find命令和xargs命令配合使用,自己总结的,觉得还好
运用tasklist和find命令来检测进程是否存在
find 命令参数详解 find 命令是 Unix/Linux 系统中一个功能强大且灵活的命令,用于在文件系统中搜索和查找文件。该命令具有强大的功能,因此它的选项也很多,详细了解每个参数可以帮助我们更好地使用 find 命令。 ...
Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根据不同的条件来查找文件,例如权限、拥有者、修改日期/时间、文件大小等等。在这篇文章中,我们将学习如何使用 find 命令以及它所提供的选项来查找...
### Linux中的Find命令详解 在Linux系统中,`find`命令是极其强大的工具之一,用于在文件系统中搜索文件。其功能强大且灵活,能够基于多种条件进行查找,包括文件名、类型、权限、大小、拥有者等。下面将详细介绍`...
find 命令的 7 种用法.doc
find命令可以根据给定的路径和表达式查找的文件或目录。find参数选项很多,并且支持正则,功能强大。和管道结合使用可以实现复杂的功能,是系统管理者和普通用户必须掌握的命令。 find如不加任何参数,表示查找当前...
### Linux Find 命令使用手册详解 #### 概述 `find` 是一个功能强大的命令行工具,用于在Linux系统中的目录树中查找文件。它支持多种选项和表达式来帮助用户根据特定条件筛选出目标文件。此文档将详细介绍`find`...
Linux find 命令说明 Linux find 命令是 Linux 系统中一个功能强大且灵活的命令,它可以根据各种条件来查找文件和目录。Find 命令的基本语法是 `find [pathname] [expression]`,其中 `pathname` 是要搜索的目录或...
Linux 命令 find 的高级查找技巧 find 命令是 Linux 中最常用的命令之一,掌握了 find 命令的高级查找技巧可以使很多操作达到事半功倍的效果。本文将详细介绍 find 命令的格式、参数、表达式、tests、actions、...
Linux下的find命令在目录结构中搜索文件,并执行指定的操作。linux下的find命令提供了相当多的查找条件,功能很强大,由于find的功能很强大,所以他的选项也很多,今天我们来细说一下find命令下的三个时间参数atime,...
Linux 下 find 命令详解 find 命令是 Linux 系统中一个功能强大且常用的命令,用于在文件系统中搜索文件。它可以根据文件的各种属性,如名称、权限、所有者、组、时间戳、大小等,来查找指定的文件。 基本语法 ...
### Linux Find 命令详解 #### 概述 `find` 命令是 Linux 系统中一个非常强大的工具,用于在指定路径下查找文件。它支持多种选项来帮助用户精确地定位到需要的文件。通过 `find` 命令,用户可以基于文件名、文件...