Linux文件查找命令find

合集下载

Linux的五个查找命令

Linux的五个查找命令
Variable-name=value 设置实际值到variable-name Variable-name+value 如果设置了variable-name,则重设其 值 Variable-name:?value 如果未设置variable-name,显示未定 义用户错误信息 Variable-name?value 如果未设置variable-name,显示系统 错误信息
$ locate ~/m 搜索用户主目录下,所有以m开头 的文件。
$ locate -i ~/m 搜索用户主目录下,所有以m开头 的文件,并且忽略大小写。
3. whereis whereis命令只能用于程序名的搜索,而 且只搜索二进制文件(参数-b)、man说 明文件(参数-m)和源代码文件(参数s)。如果省略参数,则返回所有信息。 whereis命令的使用实例:
$ find . -name "my*" -ls 搜索当前目录中,所有文件名以my开头的文 件,并显示它们的详细信息。
$ find . -type f -mmin -10 搜索当前目录中,所有过去10分钟中更新过 的普通文件。如果不加-type f参数,则搜索普 通文件+特殊文件+目录。
2. locate locate命令是“find -name”的另一种写法, 但是要比后者快得多,原因在于它不搜索 具体目录,而是搜索一个数据库 (/var/lib/locatedb),这个数据库中含有 本地所有文件信息。
Linux系统自动创建这个数据库,并且每天 自动更新一次,所以使用locate命令查locate之前,先使用updatedb命 令,手动更新数据库。
locate命令的使用实例:
$ locate /etc/sh 搜索etc目录下所有以sh开头的文件。

find 命令用法

find 命令用法

find 命令用法find命令用法一、概述find命令是Linux系统中非常常用的一个命令,用于查找文件或目录。

它可以根据指定的条件搜索文件,并将符合条件的文件输出到标准输出设备。

本文将详细介绍find命令的用法。

二、基本语法find命令的基本语法如下:find [路径] [表达式] [操作]三、路径路径指定了find命令的搜索范围,可以是文件系统中的任意目录。

如果不指定路径,则默认为当前目录。

四、表达式表达式是用于指定搜索条件的部分,可以包括以下内容:1. 文件名匹配:使用-name选项,后面跟上要匹配的文件名,支持使用通配符。

例如,要查找所有以".txt"结尾的文件,可以使用以下命令:find /path/to/search -name "*.txt"2. 文件类型匹配:使用-type选项,后面跟上要匹配的文件类型。

常用的文件类型包括f(普通文件)、d(目录)、l(符号链接)等。

例如,要查找所有目录,可以使用以下命令:find /path/to/search -type d3. 文件大小匹配:使用-size选项,后面跟上要匹配的文件大小。

可以使用正负号来表示不同的条件,例如+表示大于,-表示小于等。

例如,要查找所有大于1MB的文件,可以使用以下命令:find /path/to/search -size +1M4. 时间匹配:使用-mtime和-atime选项,后面跟上要匹配的时间。

可以使用正负号来表示不同的条件,例如+表示大于,-表示小于等。

例如,要查找最近7天内修改过的文件,可以使用以下命令:find /path/to/search -mtime -7五、操作操作是对搜索到的文件进行处理的部分,可以包括以下内容:1. 打印:使用-print选项,将搜索到的文件输出到标准输出设备。

例如,要将搜索到的文件打印出来,可以使用以下命令:find /path/to/search -name "*.txt" -print2. 删除:使用-delete选项,将搜索到的文件删除。

Linux终端中的文件查找命令

Linux终端中的文件查找命令

Linux终端中的文件查找命令Linux终端是Unix类操作系统中的一个关键组件,在日常使用中,我们经常需要快速、准确地查找特定的文件。

为此,Linux提供了一系列的文件查找命令,本文将介绍其中几个常用的命令和它们的使用方法。

1. find命令find命令是Linux中最常用的文件查找命令之一。

它的基本语法如下:```find [路径] [表达式]```其中,路径指定了查找的起始目录,默认为当前目录。

表达式用于指定查找的条件。

例如,要在当前目录下查找所有扩展名为.txt的文件,可以使用以下命令:```find . -name "*.txt"```该命令中的`.`代表当前目录,`-name "*.txt"`指定了文件名以.txt结尾的条件。

除了文件名,find命令还可以根据文件类型、文件权限、文件大小等条件进行查找。

以下是几个常用的表达式:- `-type`:按照文件类型进行查找。

例如,要查找所有目录,可以使用`-type d`。

- `-perm`:按照文件权限进行查找。

例如,要查找所有具有读写权限的文件,可以使用`-perm 600`。

- `-size`:按照文件大小进行查找。

例如,要查找所有大小大于1MB的文件,可以使用`-size +1M`。

2. locate命令locate命令是另一个常用的文件查找命令,它基于一个数据库进行查找,因此速度比find命令快。

但是需要注意的是,locate命令只能查找已经建立了索引的文件。

要使用locate命令,首先需要更新文件数据库。

可以使用以下命令:```sudo updatedb```然后,可以使用locate命令进行查找,例如:```locate myfile.txt```该命令将在整个文件系统中查找名为myfile.txt的文件,并返回所有匹配的结果。

如果要忽略字母的大小写,可以使用`-i`参数。

需要注意的是,由于locate命令基于文件数据库,所以查找结果可能稍有延迟。

find 命令的用法

find 命令的用法

find 命令的用法在Linux系统中,find命令是一个强大的工具,它用于在文件系统中进行搜索。

find命令可以根据文件属性、文件名、大小、创建时间、修改时间等来查找文件。

本文将详细介绍find命令的用法,帮助您更好地利用这个工具。

一、基本用法find命令的基本语法如下:find [路径] [选项] [表达式]其中,路径表示搜索的起始位置,可以是整个文件系统,也可以是某个目录。

选项是各种可用的搜索选项,表达式则是搜索条件。

例如,要在整个文件系统中查找所有扩展名为.txt的文件,可以使用以下命令:find / -name "*.txt"如果要查找当前目录及其子目录中大小大于10MB的文件,可以使用以下命令:find . -size +10M二、常用选项1. -name:按照指定的模式查找文件名。

例如,-name "*.txt" 表示查找所有扩展名为.txt的文件。

2. -type:指定要搜索的文件类型。

例如,-type f 表示只搜索普通文件,-type d 表示只搜索目录。

3. -size:按照指定的大小查找文件。

例如,-size +10M 表示查找大小大于10MB的文件,-size -10k 表示查找大小小于10kb的文件。

4. -mtime:按照修改时间查找文件。

+n 表示查找修改时间在n 天以内的文件,-n 则表示查找修改时间在n天之前的文件。

5. -print:将匹配的文件输出到终端。

如果不指定该选项,find 命令只会输出匹配的文件路径。

6. -exec:对匹配的文件执行指定的命令。

可以用来对找到的文件进行操作,如重命名、复制、删除等。

三、高级用法find命令还支持许多高级功能,如递归搜索、忽略大小写、通配符转义等。

1. 递归搜索:使用-depth选项,可以指定搜索子目录。

例如,find / -name "*.txt" -depth可以递归地在整个文件系统中查找所有扩展名为.txt的文件。

Linux命令高级技巧利用find命令进行文件搜索和操作

Linux命令高级技巧利用find命令进行文件搜索和操作

Linux命令高级技巧利用find命令进行文件搜索和操作Linux命令高级技巧:利用find命令进行文件搜索和操作Linux操作系统以其高度的灵活性和强大的命令行工具而闻名。

其中,find命令是一项非常有用的工具,可以帮助我们高效地搜索和操作文件。

本文将介绍如何使用find命令进行文件搜索和操作,以及一些高级技巧的应用。

一、查找文件并显示文件路径find命令最基本的功能就是查找文件并显示其路径。

我们可以通过指定起始目录和一些条件来进行搜索。

例如,要在当前目录下查找所有扩展名为.txt的文本文件,并显示其路径,可以使用以下命令:```find . -name "*.txt"```这里,`.`表示从当前目录开始搜索,`-name "*.txt"`表示文件名以`.txt`结尾。

二、查找指定类型的文件除了按文件名搜索,我们还可以按照文件类型进行搜索。

find命令提供了`-type`参数,用于指定文件类型。

以下是一些常见的文件类型及其对应的参数:- 普通文件:`-type f`- 目录:`-type d`- 符号链接:`-type l`- 字符设备:`-type c`- 块设备:`-type b`- 套接字:`-type s`- 其他特殊文件类型:`-type p`例如,要查找当前目录下的所有目录,可以使用以下命令:```find . -type d```三、根据文件大小进行搜索有时候我们需要根据文件大小来搜索文件,find命令提供了`-size`参数,可以根据文件大小进行搜索。

以下是一些常见的文件大小单位:- b:块(512字节)- c:字节- k:千字节(1024字节)- M:兆字节(1024千字节)- G:吉字节(1024兆字节)例如,要查找大于1MB的文件,可以使用以下命令:```find . -size +1M```这里,`+1M`表示大于1MB的文件。

四、根据文件权限进行搜索我们还可以根据文件权限进行搜索,find命令提供了`-perm`参数,用于指定文件权限。

Linux命令高级技巧使用find进行文件搜索和查找

Linux命令高级技巧使用find进行文件搜索和查找

Linux命令高级技巧使用find进行文件搜索和查找在Linux操作系统中,find命令是一种非常常用的工具,它用于在文件系统中搜索并查找特定文件或目录。

使用find命令可以根据不同的搜索条件来定位目标文件,大大提高了文件管理的效率和准确性。

本文将介绍一些高级技巧,帮助你更加灵活地运用find命令进行文件搜索和查找。

1. 搜索文件名find命令最基本的用法是根据文件名进行搜索。

通过指定搜索目录和匹配规则,可以找到符合条件的文件。

例如,要在当前目录及其子目录中查找名为"example.txt"的文件,可以使用以下命令:```find . -name example.txt```其中,`.`表示当前目录,`-name`用于指定要搜索的文件名。

运行该命令后,find将在当前目录及其子目录中查找名为"example.txt"的文件,并将结果输出。

2. 搜索文件类型若要查找指定类型的文件,可以使用`-type`参数。

常用的文件类型包括:普通文件(f)、目录(d)、符号链接(l)、字符设备(c)和块设备(b)等。

例如,要查找所有的目录文件,可以使用以下命令:```find . -type d```运行该命令后,find将在当前目录及其子目录中查找并输出所有的目录文件。

3. 结合逻辑运算find命令还支持逻辑运算,可以通过逻辑运算符(`-and`、`-or`和`-not`)将多个条件组合起来,进一步细化搜索。

例如,要找到当前目录及其子目录中同时满足文件名以"example"开头且为普通文件的文件,可以使用以下命令:```find . -name 'example*' -type f```该命令将使用`-name`参数找到文件名以"example"开头的文件,再结合`-type f`参数找到普通文件。

4. 根据文件大小搜索find命令还可以根据文件的大小进行搜索。

Linux终端命令find查找文件和目录

Linux终端命令find查找文件和目录

Linux终端命令find查找文件和目录Linux系统是一种常用的操作系统,广泛应用于服务器和个人电脑。

在Linux系统中,终端命令是重要的操作工具之一。

本文将介绍Linux中的一个常用终端命令find,该命令用于查找文件和目录,并提供了一些实用的选项和示例。

一、find命令简介Find命令是Linux系统中用于查找文件和目录的重要命令之一。

它的基本语法如下:```shellfind [路径] [表达式选项]```其中,路径指定搜索的起始点,可以是目录名称或者路径名称;表达式选项用于设置查找的条件。

二、常用选项及示例1. 根据名称查找find命令可以通过名称查找文件和目录。

下面是一个简单的示例,查找当前目录下名称为test.txt的文件:```shellfind . -name test.txt```其中,`.`表示当前目录,-name用于指定名称为test.txt。

2. 根据类型查找除了根据名称查找,find命令还可以根据文件类型进行查找。

例如,查找当前目录下的所有目录:```shellfind . -type d```其中,-type用于指定查找的对象类型,d表示目录。

3. 根据大小查找通过find命令,还可以根据文件大小进行查找。

下面是一个示例,查找当前目录下大于1MB的文件:```shellfind . -size +1M```其中,+1M表示文件大小大于1MB。

4. 根据权限查找find命令可以根据文件权限进行查找。

例如,查找当前目录下所有拥有可执行权限的文件:```shellfind . -perm /u+x```其中,-perm用于指定文件权限,/u+x表示用户具有可执行权限。

5. 根据时间戳查找find命令还可以根据文件的时间戳进行查找。

下面是一个示例,查找当前目录下1天内修改过的文件:```shellfind . -mtime -1```其中,-mtime用于指定时间范围,-1表示1天内。

linux系统find用法

linux系统find用法

linux系统find用法Linux系统中的find命令是一个非常强大和常用的工具,它可以帮助用户在文件系统中查找文件和目录。

find命令支持各种不同的选项和参数,可以根据文件名、文件类型、文件大小、文件权限等条件来进行查找。

一、基本用法1. 查找文件:最简单的用法是通过文件名来查找文件。

使用find命令的基本语法是:find 路径-name 文件名。

例如,要在当前目录及其子目录中查找名为"test.txt"的文件,可以使用以下命令:find . -name test.txt这条命令将在当前目录及其子目录中查找名为"test.txt"的文件,并显示出所有符合条件的文件的路径。

2. 查找目录:和查找文件类似,也可以使用find命令来查找目录。

使用find命令查找目录的基本语法是:find 路径-type d -name 目录名。

例如,要在当前目录及其子目录中查找名为"test"的目录,可以使用以下命令:find . -type d -name test这条命令将在当前目录及其子目录中查找名为"test"的目录,并显示出所有符合条件的目录的路径。

3. 查找指定类型的文件:find命令支持通过文件类型来查找文件。

使用find命令查找指定类型的文件的基本语法是:find 路径-type 文件类型。

例如,要在当前目录及其子目录中查找所有的文本文件,可以使用以下命令:find . -type f -name "*.txt"这条命令将在当前目录及其子目录中查找所有的文本文件,并显示出所有符合条件的文件的路径。

4. 递归查找:默认情况下,find命令会递归查找指定路径下的所有子目录。

如果不希望递归查找,可以加上-maxdepth参数来限制查找的深度。

例如,要在当前目录中查找名为"test.txt"的文件,但不查找子目录,可以使用以下命令:find . -maxdepth 1 -name test.txt这条命令将在当前目录中查找名为"test.txt"的文件,但不会查找子目录。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux文件查找命令find,xargs详述目录版权声明前言:关于find命令一、find命令格式1、find命令的一般形式为;2、find命令的参数;3、find命令选项;4、使用exec或ok来执行shell命令;二、find命令的例子;1、查找当前用户主目录下的所有文件;2、为了在当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;3、为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;4、查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们;5、为了查找系统中所有属于root组的文件;6、find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件7、为了查找当前文件系统中的所有目录并排序;8、为了查找系统中所有的rmt磁带设备;三、xargs四、find命令的参数;1、使用name选项2、用perm选项3、忽略某个目录4、使用find查找文件的时候怎么避开某个文件目录5、使用user和nouser选项6、使用group和nogroup选项7、按照更改时间或访问时间等查找文件8、查找比某个文件新或旧的文件9、使用type选项10、使用size选项11、使用depth选项12、使用mount选项五、关于本文六、相关文档+++++++++++++++++++++++++++++++++++++++++++++++++正文+++++++++++++++++++++++++++++++++++++++++++++++++版权声明</p>本文是zhyfly兄贴在的一个帖子而整理出来的,如果您对版权有疑问,请在本帖后面跟帖。

谢谢;本文的HTML版本由北南南北整理;修改了整篇文档的全角及说明文字中的单词中每个字母空格的问题;为标题加了编号,方便大家阅读;前言:关于find命令<p>由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。

即使系统中含有网络文件系统(NFS),find命令在该文件系统中同样有效,只你具有相应的权限。

在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。

一、find命令格式1、find命令的一般形式为;</font>find pathname-options[-print-exec-ok...]2、find命令的参数;</font>pathname:find命令所查找的目录路径。

例如用.来表示当前目录,用/来表示系统根目录。

-print:find命令将匹配的文件输出到标准输出。

-exec:find命令对匹配的文件执行该参数所给出的shell命令。

相应命令的形式为'command'{}\;,注意{}和\;之间的空格。

-ok:和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

3、find命令选项</font>-name按照文件名查找文件。

-perm按照文件权限来查找文件。

-prune使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。

-user按照文件属主来查找文件。

-group按照文件所属的组来查找文件。

-mtime-n+n按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n 表示文件更改时间距现在n天以前。

find命令还有-atime和-ctime选项,但它们都和-m time选项。

-nogroup查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。

-nouser查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。

-newer file1!file2查找更改时间比文件file1新但比文件file2旧的文件。

-type查找某一类型的文件,诸如:b-块设备文件。

d-目录。

c-字符设备文件。

p-管道文件。

l-符号链接文件。

f-普通文件。

-size n:[c]查找文件长度为n块的文件,带有c时表示文件长度以字节计。

-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。

-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。

-mount:在查找文件时不跨越文件系统mount点。

-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。

-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

另外,下面三个的区别:</p>-amin n查找系统中最后N分钟访问的文件-atime n查找系统中最后n*24小时访问的文件-cmin n查找系统中最后N分钟被改变文件状态的文件-ctime n查找系统中最后n*24小时被改变文件状态的文件&nbsp;-mmin n查找系统中最后N分钟被改变文件数据的文件-mtime n查找系统中最后n*24小时被改变文件数据的文件4、使用exec或ok来执行shell命令使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的&nbsp;在有些操作系统中只允许-exec选项执行诸如l s或ls-l这样的命令。

大多数用户使用这一选项是为了查找旧文件并删除它们。

建议在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除的文件。

exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个\,最后是一个分号。

为了使用exec选项,必须要同时使用print选项。

如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。

例如:为了用ls-l命令列出所匹配到的文件,可以把ls-l命令放在find 命令的-exec选项中#find.-type f-exec ls-l{}\;-rw-r--r--1root root34928 2003-02-25./conf/httpd.conf-rw-r--r--1root root129592003-02-25./conf/magic-rw-r--r--1root root1802003-02-25./conf.d/README 上面的例子中,find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls-l命令将它们列出。

在/logs目录中查找更改时间在5日以前的文件并删除它们:$find logs-type f-mtime+5-exec rm{}\;记住:在shell中用任何方式删除文件之前,应当先查看相应的文件,一定要小心!当使用诸如mv或rm命令时,可以使用-exec选项的安全模式。

它将在对每个匹配到的文件进行操作之前提示你。

在下面的例子中,find命令在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。

$find.-name"*.conf"-mtime+5-ok rm{}\;<rm..../conf/httpd.conf>?n按y键删除文件,按n键不删除。

任何形式的命令都可以在-exec选项中使用。

在下面的例子中我们使用grep命令。

find命令首先匹配所有文件名为“passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后执行grep 命令看看在这些文件中是否存在一个sam用户。

#find/etc-name"passwd*"-exec grep"sam"{}\;sam:x:501:501::/usr/sam:/bin/bash二、find命令的例子;</font>1、查找当前用户主目录下的所有文件:下面两种方法都可以使用$find$HOME-print$find~-print2、让当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;$find.-type f-perm644-exec ls-l{}\;3、为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;<br> $find/-type f-size0-exec ls-l{}\;4、查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们;$find/var/logs-type f-mtime+7-ok rm{}\;5、为了查找系统中所有属于root组的文件;</b>$find.-group root-exec ls-l{}\;-rw-r--r--1root root59510月31 01:09./fie16、find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件。

该命令只检查三位数字,所以相应文件的后缀不要超过999。

先建几个admin.log*的文件,才能使用下面这个命令$find.-name"admin.log[0-9][0-9][0-9]"-atime-7-okrm{}\;<rm..../admin.log001>?n<rm..../admin.log002>?n<rm..../admin.log042>?n<rm..../admin.log942>?n7、为了查找当前文件系统中的所有目录并排序;</b>$find.-type d|sort8、为了查找系统中所有的rmt磁带设备;$find/dev/rmt-print三、xargsxargs-build and execute command lines from standard input 在使用find命令的-exec选项处理匹配到的文件时,find命令将所有匹配到的文件一起传递给exec执行。

但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。

错误信息通常是“参数列太长”或“参数列溢出”。

这就是xargs命令的用处所在,特别是与find命令一起使用。

find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。

相关文档
最新文档