linux 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选项,将搜索到的文件删除。
find的使用方法
find的使用方法find命令是在Linux系统中常用的文件搜索工具之一,它能够根据指定的条件在指定的目录下查找文件。
本文将介绍find命令的使用方法,包括基本语法和常用参数,以及一些实际应用场景。
一、基本语法find命令的基本语法如下所示:find [路径] [表达式]其中,路径表示要搜索的目录路径,可以是绝对路径或相对路径。
表达式用于指定搜索的条件,可以根据文件名、大小、权限等属性进行搜索。
二、常用参数find命令提供了许多参数,下面列举了一些常用的参数:1. -name:根据文件名进行搜索,可以使用通配符进行模糊匹配。
例如,要查找以.txt结尾的文件,可以使用以下命令:find /path/to/dir -name "*.txt"2. -type:根据文件类型进行搜索,常见的类型包括f(普通文件)、d(目录)、l(符号链接)等。
例如,要查找所有目录,可以使用以下命令:find /path/to/dir -type d3. -size:根据文件大小进行搜索,可以指定文件的大小范围。
例如,要查找大于10MB的文件,可以使用以下命令:find /path/to/dir -size +10M4. -mtime:根据文件的修改时间进行搜索,可以指定时间范围。
例如,要查找最近7天内修改过的文件,可以使用以下命令:find /path/to/dir -mtime -75. -perm:根据文件的权限进行搜索,可以指定权限的组合。
例如,要查找具有可执行权限的文件,可以使用以下命令:find /path/to/dir -perm /u=x,g=x,o=x三、实际应用1. 查找指定文件:可以使用-name参数结合通配符来查找指定文件。
例如,要查找所有以.log结尾的文件,可以使用以下命令:find /path/to/dir -name "*.log"2. 查找空文件:可以使用-size参数来查找空文件。
linux的find用法
linux的find用法Linux中的find命令是一个非常强大的工具,用于在文件系统中文件和目录。
它可以根据不同的条件来查找文件,比如按名称、大小、权限等。
以下是find命令的用法及其参数解析。
基本用法:find 命令的基本语法是:find [path] [expression]path:指定要的路径。
expression:指定要应用的表达式。
例如,要在当前目录中查找所有的文件,可以使用以下命令:find . -type f这将递归地当前目录下的所有文件,并打印出它们的路径。
find 命令的参数:1. -name:按名称查找文件。
例如,要在当前目录中查找名为app.log的文件,可以使用以下命令:find . -name app.log2. -type:按类型查找文件。
-type f:查找普通文件。
-type d:查找目录。
-type l:查找符号链接。
-type b:查找块设备文件。
-type c:查找字符设备文件。
-type s:查找套接字文件。
-type p:查找FIFO文件。
3. -size:按大小查找文件。
-size [+,-]n:查找大于(+)或小于(-)n个512字节块的文件。
-size n[cwbkMGTP]:查找大于(+)或小于(-)n个单位(字节、块、KB、MB、GB、TB、PB)的文件。
5. -perm:按权限查找文件。
-perm mode:以mode权限查找文件。
6. -exec:对结果执行命令。
7. -user:按所有者查找文件。
-user username:查找属于username的文件。
8. -group:按组查找文件。
-group groupname:查找属于groupname的文件。
9. -maxdepth:指定递归的最大深度。
-maxdepth n:最多递归到n层目录。
10. -mindepth:指定递归的最小深度。
-mindepth n:从第n层目录开始递归。
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命令是非常常用的一个命令,它可以让用户在文件系统中查找指定的文件或者目录。
该命令的使用方法非常灵活,可以基于文件名、文件类型、文件大小、文件权限等多个条件进行查找。
下面我们来详细的介绍一下find的用法。
一、基本用法以下是find命令的基本用法:find [path] [expression]其中,path表示要查找的目录路径,expression则是查找时的表达式。
例如,我们要在当前目录中查找所有以.txt结尾的文件,可以使用以下命令:find . -name "*.txt"上述命令中,`.`表示当前目录,`-name`表示按照文件名进行查找,而`"*.txt"`则表示查找以`.txt`结尾的所有文件。
二、按照类型查找find命令可以按照文件的类型进行查找。
以下是一些常见的文件类型:- f:普通文件- d:目录文件- l:符号链接文件- c:字符设备文件- b:块设备文件- p:命名管道文件- s:套接字文件例如,我们想要查找当前目录下的所有目录文件,可以使用以下命令:find . -type d上述命令中,`-type`表示按照类型进行查找,其中`d`表示目录文件。
三、按照大小查找find命令可以按照文件的大小进行查找。
以下是一些常见的大小单位:- b:512字节块- c:字节- w:2字节的字- k:1024字节的千字节- M:1048576字节的兆字节- G:1073741824字节的吉字节例如,我们想要查找当前目录下大小为1MB以上的文件,可以使用以下命令:find . -size +1M上述命令中,`-size`表示按照文件大小进行查找,其中`+`表示条件是大于,`1M`表示1MB。
四、按照权限查找find命令可以按照文件的权限进行查找。
以下是一些常见的权限类型:- a:所有用户- u:文件所有者- g:与文件所有者同属同一组的用户- o:不属于文件所有者所在组的其他用户例如,我们想要查找当前目录下所有权限为“只有文件所有者可写”的文件,可以使用以下命令:find . -perm -u+w上述命令中,`-perm`表示按照权限进行查找,其中`-u+w`表示文件所有者可写。
find 命令用法
find 命令用法Find 命令是 Linux 系统中非常常用的工具,它可以在指定路径及其子路径下搜索指定的文件。
Find 命令有许多用法,并且非常灵活,下面我们来详细介绍一下。
1. 最基础的用法最基础的 find 命令用法如下:```find [path] [expression]```其中 path 表示要搜索的路径,expression 表示搜索的条件表达式。
例如搜索当前目录下所有的 shell 脚本可以使用以下命令:```find . -name "*.sh"```其中点号表示当前目录,-name 表示按照文件名匹配条件,"*.sh" 表示文件名以 .sh 结尾。
2. 搜索特定类型的文件Find 命令可以通过 -type 参数来指定搜索特定类型的文件。
例如搜索当前目录下所有的目录可以使用以下命令:```find . -type d```其中 -type d 表示搜索类型为目录的文件。
3. 搜索指定时间的文件Find 命令可以通过 -mtime、-atime 和 -ctime 参数来搜索指定时间的文件。
例如搜索 10 天内修改过的文件可以使用以下命令:```find . -mtime -10```其中 -mtime -10 表示搜索最近 10 天内修改过的文件。
4. 搜索指定大小的文件Find 命令可以通过 -size 参数来搜索指定大小的文件。
例如搜索大于 1M 的文件可以使用以下命令:```find . -size +1M```其中 -size +1M 表示搜索大小大于 1M 的文件。
5. 搜索指定权限的文件Find 命令可以通过 -perm 参数来搜索指定权限的文件。
例如搜索所有用户可执行的文件可以使用以下命令:```find . -perm /u+x```其中 -perm /u+x 表示搜索文件权限中用户可执行的文件。
6. 搜索指定用户或组的文件Find 命令可以通过 -user 和 -group 参数来搜索指定用户或组的文件。
linux中find命令的作用
linux中find命令的作用find命令是Linux系统中常用的命令之一,它的主要作用是文件和目录。
find命令具有强大的功能,可以根据指定的条件在指定的文件夹及其子文件夹中查找文件,可以根据文件的类型、大小、权限、创建或修改时间等多种条件进行。
在本文中,我们将详细介绍find命令的一些常用选项和使用方法。
find命令的基本语法如下:```shellfind [path...] [expression]```- path:指定要的路径,可以是一个或多个文件夹,如果不指定,默认为当前路径。
- expression:指定的条件。
下面是一些常用的find命令选项和使用方法:1.根据文件名我们可以使用find命令来根据文件名来文件,通过使用`-name`选项,并指定要的文件名或通配符。
例如,要在当前文件夹及其子文件夹中名为`file.txt`的文件,可以使用以下命令:```shellfind . -name file.txt```2.根据文件类型可以使用`-type`选项来根据文件的类型来文件。
常见的文件类型有`f`表示普通文件,`d`表示目录,`l`表示符号链接等。
例如,要当前文件夹及其子文件夹中的所有目录,可以使用以下命令:```shellfind . -type d```3.根据文件大小通过使用`-size`选项,可以根据文件的大小来文件。
可以使用`+`或`-`符号来指定文件的大小范围。
例如,要大小大于1MB的文件,可以使用以下命令:```shellfind . -size +1M```4.根据文件权限可以使用`-perm`选项来根据文件的权限来文件。
可以使用数字或符号来指定文件的权限。
例如,要所有具有可写权限的文件,可以使用以下命令:```shellfind . -perm /u+w```5.根据文件的创建或修改时间```shell```6.删除符合条件的文件通过使用`-delete`选项,可以删除符合条件的文件。
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"的文件,但不会查找子目录。
find指令用法
find指令用法find指令是Linux系统中常用的一种通用搜索工具,可以用于查找文件和目录。
使用方式:1. 基本语法:find [路径] [表达式]例如:find /home/user/ -name '*.txt' -print其中,“/home/user/”为要搜索的路径,“-name”是匹配的表达式,“*.txt”代表文件名以.txt结尾,“-print”表示将搜索结果输出到屏幕上。
2. 按文件类型搜索:(1)搜索所有文件:find /home/user/ -type f -print其中,“-type f”表示搜索文件类型为“普通文件”。
(2)搜索所有目录:find /home/user/ -type d -print其中,“-type d”表示搜索文件类型为“目录”。
(3)搜索所有链接文件:find /home/user/ -type l -print 其中,“-type l”表示搜索文件类型为“链接文件”。
3. 按文件大小搜索:(1)搜索大于指定大小的文件:find /home/user/ -size +10M -print其中,“+10M”表示搜索大小大于10MB的文件。
(2)搜索小于指定大小的文件:find /home/user/ -size -10M -print其中,“-10M”表示搜索大小小于10MB的文件。
4. 按修改时间搜索:(1)搜索最近N天内修改的文件:find /home/user/ -mtime -N -print其中,“-mtime -N”表示搜索最近N天内被修改过的文件。
(2)搜索最近N天外修改的文件:find /home/user/ -mtime +N -print其中,“-mtime +N”表示搜索最近N天外修改的文件。
5. 按用户和组搜索:(1)搜索属于某个用户的文件:find /home/user/ -user username -print其中,“-user username”表示搜索属于用户名为“username”的文件。
如何使用find命令在Linux中搜索文件和
如何使用find命令在Linux中搜索文件和目录在Linux中,find命令是一个非常强大的文件搜索工具,它可以帮助我们在文件系统中查找指定条件的文件和目录。
本文将介绍如何使用find命令来搜索文件和目录。
一、基本语法find命令的基本语法如下:find [路径] [条件选项] [操作选项]其中,路径表示待搜索的起始位置,可以是目录或者文件;条件选项用于指定搜索条件;操作选项用于对搜索结果进行操作。
二、根据名称搜索文件1. 根据文件名搜索要在指定路径下搜索文件名为filename的文件,可以使用以下命令:find /path/to/search -name "filename"例如,要在当前目录下搜索名为test.txt的文件,可以使用以下命令:find . -name "test.txt"以上命令将在当前目录以及子目录中查找test.txt文件。
2. 模糊搜索文件名如果我们只知道文件名的部分内容,可以使用模糊搜索来匹配文件名。
find命令支持通配符匹配,如?和*。
表示匹配单个字符,*表示匹配零个或多个字符。
例如,要搜索以test开头的文件,可以使用以下命令:find . -name "test*"以上命令将搜索所有以test开头的文件。
三、根据类型搜索文件1. 根据文件类型搜索find命令可以根据文件类型来搜索文件。
常见的文件类型包括普通文件(f)、目录(d)、链接文件(l)、字符设备文件(c)、块设备文件(b)等。
要搜索某种特定类型的文件,可以使用以下命令:find /path/to/search -type 类型选项例如,要搜索所有目录文件,可以使用以下命令:find . -type d以上命令将搜索当前目录下的所有目录。
2. 根据文件大小搜索find命令可以根据文件的大小来搜索文件。
常用的文件大小选项有+和-,表示大于和小于某个指定大小。
Linux命令高级技巧使用find命令查找特定类型的文件
Linux命令高级技巧使用find命令查找特定类型的文件在Linux系统中,Find命令是一个非常强大且常用的命令工具,它可以帮助用户快速、精确地查找特定类型的文件。
本文将介绍Linux命令高级技巧,以及如何使用Find命令来查找特定类型的文件。
I. Find命令的基本用法Find命令是一种非常强大的文件搜索命令,其基本用法如下所示:1. find [path] [options] [expression]在上述命令中,[path]表示要搜索的目录路径,[options]表示命令选项,[expression]表示要查找的文件类型或其他条件表达式。
下面将详细介绍Find命令的高级技巧。
II. 根据文件类型查找文件Find命令可以根据文件类型进行文件搜索。
下面是一些常见的文件类型查找示例:1. 查找所有的文本文件:find /path/to/search -type f -name "*.txt"2. 查找所有的图片文件:find /path/to/search -type f -name "*.jpg" -o -name "*.png"3. 查找所有的压缩文件:find /path/to/search -type f -name "*.zip" -o -name "*.tar.gz"以上示例中,“/path/to/search”是要进行搜索的目录路径。
通过使用-type选项指定文件类型为“f”,-name选项指定文件名的匹配模式,可以准确地查找到所需的文件。
III. 根据文件大小查找文件Find命令还可以根据文件大小进行文件搜索。
下面是几个常见的文件大小查找示例:1. 查找大于1MB的文件:find /path/to/search -type f -size +1M2. 查找小于10KB的文件:find /path/to/search -type f -size -10k在上述示例中,-size选项用于指定文件的大小范围。
如何使用find命令在Linux中搜索文件
如何使用find命令在Linux中搜索文件在Linux系统中,使用find命令可以非常方便地搜索文件和目录。
它具有强大的功能和灵活的用法,可以满足各种情况下的搜索需求。
本文将介绍如何使用find命令在Linux中搜索文件。
一、基本语法及参数解释在开始介绍具体的使用方法之前,我们先来看一下find命令的基本语法和常用参数的含义。
find [PATH] [expression]参数说明:- PATH:表示搜索的路径,可以是具体的目录名或者路径通配符。
- expression:表示搜索的条件,可以是文件名、文件类型、文件大小等。
二、按文件名搜索1. 按文件名搜索指定文件要搜索指定文件名的文件,可以使用以下命令:find /path/to/search -name "filename"其中,/path/to/search表示要搜索的路径,-name参数指定要搜索的文件名,需要用双引号括起来,如"filename"。
这样,find命令就会在指定路径下搜索该文件名的文件。
2. 模糊匹配文件名如果只记得部分文件名,或者想搜索符合某种模式的文件,可以使用通配符进行模糊匹配。
常用的通配符有:- *:匹配任意多个字符- ?:匹配单个字符- [ ]:匹配括号内的任意一个字符例如,要搜索以abc开头的文件,可以使用以下命令:find /path/to/search -name "abc*"三、按文件类型搜索1. 按文件类型搜索Linux系统中,每个文件都有一个类型。
常见的文件类型有普通文件(-type f)、目录(-type d)、符号链接(-type l)、字符设备(-type c)和块设备(-type b)等。
要搜索指定类型的文件,可以使用以下命令:find /path/to/search -type 文件类型例如,要搜索所有普通文件,可以使用以下命令:find /path/to/search -type f2. 按文件大小搜索有时候需要按照文件的大小范围进行搜索,可以使用以下命令:- 按照文件大小大于N字节进行搜索:find /path/to/search -size +Nc- 按照文件大小小于N字节进行搜索:find /path/to/search -size -Nc这里的N可以是一个具体的数字,表示要搜索的文件大小。
Linuxfind命令详解
Linuxfind命令详解Linux下find命令在⽬录结构中搜索⽂件,并执⾏指定的操作。
Linux下find命令提供了相当多的查找条件,功能很强⼤find常见命令参数命令选项:-name 按照⽂件名查找⽂件。
-perm 按照⽂件权限来查找⽂件。
-user 按照⽂件属主来查找⽂件。
-group 按照⽂件所属的组来查找⽂件。
-mtime -n +n 按照⽂件的更改时间来查找⽂件【-7 7天之内 +7 7天前】-nogroup 查找⽆效属组的⽂件,即该⽂件所属的组在/etc/groups中不存在。
-nouser 查找⽆效属主的⽂件,即该⽂件的属主在/etc/passwd中不存在。
-newer file1 ! file2 查找更改时间⽐⽂件file1新但⽐⽂件file2旧的⽂件。
-type 查找某⼀类型的⽂件,诸如:b - 块设备⽂件。
d - ⽬录。
c - 字符设备⽂件。
p - 管道⽂件。
l - 符号链接⽂件。
f - 普通⽂件。
-size n:[c] 查找⽂件长度为n块的⽂件,带有c表⽰⽂件长度以字节计。
-depth:在查找⽂件时,⾸先查找当前⽬录中的⽂件,然后再在其⼦⽬录中查找。
-follow:如果find命令遇到符号链接⽂件,就跟踪⾄链接所指向的⽂件。
另外,下⾯三个的区别:-amin n 查找系统中最后N分钟访问的⽂件-atime n 查找系统中最后n*24⼩时访问的⽂件-cmin n 查找系统中最后N分钟被改变⽂件状态的⽂件-ctime n 查找系统中最后n*24⼩时被改变⽂件状态的⽂件-mmin n 查找系统中最后N分钟被改变⽂件数据的⽂件-mtime n 查找系统中最后n*24⼩时被改变⽂件数据的⽂件常⽤的命令展⽰查找普通⽂件/⽬录find /home/omd -type f (普通⽂件)find /home/omd -type d (查询⽬录)只显⽰1级⽬录⽂件且过滤⾃⾝find ./ -maxdepth 1 -type d ! -name "hhh"查找⼀天内被访问过(access)的⽂件find /home/omd/ -atime -1 -type f查询inode相同的⽂件find / -inum inode数字除了某个⽂件以为,其余的均删除find /home/omd/ -type f ! -name h.txt | xargs rm –fls | grep -v "h.txt" |xargs rm -rf (与上⾯类似,删除除了某个⽂件外的所有⽂件)删除⽬录下所有⽂件find /tmp/ -type f -exec rm -rf {} \;find /tmp/ -type f | xargs rm -rf查看当前路径下所有⽂件的信息:find /tmp/ -type f ! -name a |xargs rm –rffind ./ -type f -exec file {} \;查找指定时间内修改过的⽂件# 当前路径下访问⽂件超过2分钟⽂件find ./ -amin +2# 当前路径下访问⽂件刚好2分钟的⽂件find ./ -amin 2find ./ -cmin +2find ./ -mmin +2find ./ -mtime +2find ./ -ctime +2find ./ -mtime +2find ./ -ctime +2find / -ctime +20 最近修改⽂件时间20分钟以前find / -mtime +7 修改⽂件为7天之前的(最重要)find / -mtime 7 修改⽂件为第7天,就是往前推7天find / -mtime -7 修改⽂件为7天之内的按照⽬录或⽂件的权限来查找⽂件find /opt -perm 777按⼤⼩查找⽂件find / -size +10M |sort 【查找⼤于10M的⽂件】find / -size -10M |sort 【查找⼩于10M的⽂件】find / -size 10M |sort 【查找10M的⽂件】在test ⽬录下查找不在test4⼦⽬录之内的所有⽂件find ./test -path "test/test4" -prune -o -print【可以使⽤-prune选项来指出需要忽略的⽬录。
使用find命令在Linux系统中查找文件和
使用find命令在Linux系统中查找文件和目录在Linux系统中,find命令是一个用于在文件系统中查找文件和目录的强大工具。
它可以根据文件名、大小、权限、时间戳等多个条件来进行搜索。
本文将介绍如何使用find命令来查找文件和目录,并给出一些常用的示例。
一、基本语法find命令的基本语法如下:```find [path] [expression]```其中,`path`表示要搜索的路径或目录,若不指定则默认为当前目录;`expression`为用于指定搜索条件的表达式。
二、查找文件1. 根据文件名查找要根据文件名查找文件,可以使用`-name`参数,如下所示:```find /path/to/search -name "filename"```其中,`/path/to/search`为要搜索的路径,`filename`为要查找的文件名,支持通配符的使用。
示例1:查找当前目录下以".txt"结尾的文件```find . -name "*.txt"```2. 根据文件类型查找使用`-type`参数可以根据文件类型进行查找,常用的类型有`f`(普通文件)和`d`(目录)。
示例2:查找当前目录下的所有目录```find . -type d```3. 根据文件大小查找使用`-size`参数可以根据文件大小进行查找,支持使用`+`(大于)和`-`(小于)符号。
示例3:查找当前目录下大于100MB的文件```find . -size +100M```4. 根据权限查找使用`-perm`参数可以根据文件权限进行查找,可以使用八进制数或符号表示。
示例4:查找当前目录下所有用户可写的文件```find . -perm /o+w```5. 根据时间戳查找使用`-mtime`参数可以根据文件的修改时间进行查找,可以使用`+`(更早)和`-`(更晚)符号。
示例5:查找当前目录下最近7天内修改过的文件```find . -mtime -7```三、查找目录1. 查找空目录使用`-empty`参数可以查找空目录,即不包含任何文件或子目录的目录。
linux中的find命令参数详解
linux中的find命令参数详解Linux中的find命令包括了很多的参数选项,下面由小编为大家整理了linux中的find命令参数的相关知识,希望对大家有帮助!linux中的find命令参数详解find命令参数1.使用name选项文件名选项是find命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用。
可以使用某种文件名模式来匹配文件,记住要用引号将文件名模式引起来。
不管当前路径是什么,如果想要在自己的根目录$HOME中查找文件名符合*.log的文件,使用~作为'pathname'参数,波浪号~代表了你的$HOME目录。
find ~ -name "*.log" -print想要在当前目录及子目录中查找所有的‘ *.log‘文件,可以用:find . -name "*.log" -print想要的当前目录及子目录中查找文件名以一个大写字母开头的文件,可以用:find . -name "[A-Z]*" -print想要在/etc目录中查找文件名以host开头的文件,可以用:find /etc -name "host*" -print想要查找$HOME目录中的文件,可以用:find ~ -name "*" -print 或find . -print要想让系统高负荷运行,就从根目录开始查找所有的文件。
find / -name "*" -print如果想在当前目录查找文件名以一个个小写字母开头,最后是4到9加上.log结束的文件:命令:find . -name "[a-z]*[4-9].log" -print输出:[root@localhost test]# ll总计316-rw-r--r-- 1 root root 302108 11-13 06:03 log2012.log -rw-r--r-- 1 root root 61 11-13 06:03 log2013.log-rw-r--r-- 1 root root 0 11-13 06:03 log2014.log-rw-r--r-- 1 root root 0 11-13 06:06 log2015.log drwxr-xr-x 6 root root 4096 10-27 01:58 scf drwxrwxr-x 2 root root 4096 11-13 06:08 test3drwxrwxr-x 2 root root 4096 11-13 05:50 test4[root@localhost test]# find . -name "[a-z]*[4-9].log" -print./log2014.log./log2015.log./test4/log2014.log[root@localhost test]#find命令参数2.用perm选项按照文件权限模式用-perm选项,按文件权限模式来查找文件的话。
linux的find的用法
linux的find的用法find 是 Linux 系统中一个非常强大的命令,用于在文件系统中搜索文件和目录。
以下是find 命令的一些基本用法和常见示例:基本用法:bashfind [路径] [表达式]按名称搜索:bashfind /path/to/search -name "filename"按类型搜索:搜索所有目录: -type d搜索所有文件: -type f搜索符号链接: -type lbashfind /path/to/search -type d # 搜索所有目录find /path/to/search -type f # 搜索所有文件find /path/to/search -type l # 搜索所有符号链接按大小搜索:搜索大于某个大小的文件: -size +size搜索小于某个大小的文件: -size -size搜索精确大小的文件: -size n[cwbkMG]其中 n 是数字,c 是字节,w 是字,b 是块,k 是KB,M 是 MB,G 是 GB。
bashfind /path/to/search -size +100M # 搜索大于100MB的文件find /path/to/search -size -100k # 搜索小于100KB的文件按时间搜索:搜索最近 n 天修改的文件: -mtime n搜索在 n 天前至现在修改的文件: -mtime +n搜索在 n 天前以前至更早修改的文件: -mtime -n搜索在最近 n 天内修改过的文件: -mtime n (注意 n 前面没有正负号)bashfind /path/to/search -mtime 3 # 搜索最近3天内修改过的文件按权限搜索:搜索权限为 r 的文件: -readable搜索权限为 w 的文件: -writable搜索权限为 x 的文件: -executablebashfind /path/to/search -readable # 搜索可读的文件组合条件搜索:使用逻辑运算符 -and, -or, 和 -not 来组合多个条件。
linux的find命令常见用法
linux的find命令常见用法Linux的find命令是一种强大的文件搜索工具,可以在文件系统中查找与指定条件匹配的文件或目录。
它的使用方法相当灵活,下面将详细介绍find命令的常见用法,帮助你更好地掌握这个工具。
1. 简单用法find命令的基本用法是通过指定起始目录和匹配条件来搜索文件。
通常的命令格式是:find [起始目录] [匹配条件]例如,要在当前目录下搜索所有的txt文件,可以使用以下命令:find . -name "*.txt"上述命令中的`.`表示当前目录,`-name "*.txt"`表示文件名以`.txt`结尾。
2. 搜索指定类型的文件除了根据文件名进行匹配,find命令还支持根据文件类型进行搜索。
常见的文件类型选项包括:- `-type f`:搜索常规文件- `-type d`:搜索目录- `-type l`:搜索符号链接- `-type c`:搜索字符设备文件- `-type b`:搜索块设备文件- `-type s`:搜索套接字文件- `-type p`:搜索命名管道例如,要搜索所有的目录,可以使用以下命令:find . -type d3. 根据文件大小进行搜索find命令还可以根据文件的大小来搜索文件。
以下是一些常见的文件大小选项:- `-size n`:搜索大小为n块的文件(默认单位为512字节)- `-size +n`:搜索大小大于n块的文件- `-size -n`:搜索大小小于n块的文件- `-size n[cwbkMG]`:自定义单位搜索文件例如,要搜索所有大于1MB的文件,可以使用以下命令:find . -size +1M4. 根据文件时间进行搜索除了文件名和大小,find命令还可以根据文件的访问时间、修改时间和状态时间进行搜索。
以下是一些常见的时间选项:- `-atime n`:搜索最近n天访问过的文件- `-ctime n`:搜索最近n天状态发生过改变的文件- `-mtime n`:搜索最近n天修改过的文件- `-amin n`:搜索最近n分钟访问过的文件- `-cmin n`:搜索最近n分钟状态发生过改变的文件- `-mmin n`:搜索最近n分钟修改过的文件- `-newer file`:搜索比file更新的文件例如,要搜索最近7天内修改过的文件,可以使用以下命令:find . -mtime -75. 搜索空文件或空目录有时候我们需要搜索文件系统中的空文件或空目录。
linux系统的find用法
linux系统的find用法在Linux系统中,find命令用于在目录树中查找文件,并可以对找到的文件执行一些操作。
以下是find命令的一些常见用法和选项:查找文件或目录:查找当前目录及其子目录下的所有文件:find .查找指定目录下的所有文件:find /path/to/directory查找名为filename的文件:find . -name filename使用通配符查找,如查找所有以.txt结尾的文件:find . -name "*.txt"根据文件类型查找:查找所有目录:find . -type d查找所有普通文件:find . -type f查找所有符号链接:find . -type l根据文件大小查找:查找大于1MB的文件:find . -size +1M查找小于1MB的文件:find . -size -1M查找恰好为1MB的文件:find . -size 1M根据文件时间查找:查找在过去7天内被修改过的文件:find . -mtime -7查找在7天前被修改过的文件:find . -mtime +7查找恰好在7天前被修改过的文件:find . -mtime 7执行命令:对找到的文件执行命令,如删除所有.bak文件:find . -name "*.bak" -exec rm {} \;在执行命令前进行确认,如删除所有.bak文件并询问:find . -name "*.bak" -ok rm {} \;逻辑运算符:查找名为file1或file2的文件:find . -name "file1" -o -name "file2"查找既是普通文件又大于1MB的文件:find . -type f -a -size +1M注意:find命令非常强大,但也具有潜在的危险性,特别是在使用-exec或-delete选项时。
linux下查找文件命令find用法
linux下查找文件命令find用法Linux下的查找文件命令find用法在Linux系统中,find命令是一个非常有用的工具,用于在指定目录及其子目录中查找文件。
它可以根据不同的条件来查找文件,并提供了一些附加功能来帮助用户更精确地定位目标文件。
1. 查找指定文件名的文件:可以使用以下命令格式来查找指定文件名(如file.txt)的文件:```find /path/to/directory -name file.txt```这将在指定目录`/path/to/directory`及其子目录中查找名为`file.txt`的文件。
2. 按文件类型查找:如果要按照文件类型来查找文件,可以使用`-type`参数。
例如,要查找所有的目录,可以使用以下命令:```find /path/to/directory -type d```类似地,要查找所有的普通文件,可以使用以下命令:```find /path/to/directory -type f```3. 使用通配符和正则表达式查找文件名:find命令还支持使用通配符和正则表达式来匹配文件名。
例如,要查找以`.txt`结尾的所有文本文件,可以使用以下命令:```find /path/to/directory -name "*.txt"```这里使用了通配符`*`来匹配任意字符序列。
4. 根据文件大小查找:可以使用`-size`参数来查找指定大小的文件。
例如,要查找大于10MB的文件,可以使用以下命令:```find /path/to/directory -size +10M```5. 根据文件修改时间查找:find命令还可以根据文件的修改时间来查找文件。
以下是一些常用的选项: - `-mtime n`:查找n天之前被修改的文件。
- `-mtime +n`:查找n天以上之前被修改的文件。
- `-mtime -n`:查找n天以内被修改的文件。
Linux系统Find命令详解
Linux系统Find命令详解Find命令:Find命令主要是⽤来在相应的⽬录下查找符合给定条件的⽂件。
# find [查找起始路径] [查找条件] [处理动作]find⽀持⽂件名的正则表达式查找,按⽂件修改时间查找,按⽂件⼤⼩查找,按⽂件权限查找,按⽂件类型查找等,查找到以后还⽀持直接对查找到的⽂件使⽤命令,功能⾮常强⼤Find命令选项参数使⽤:Name选项(iname是不区分⼤⼩写):⽂件名选项是find命令最常⽤的选项,要么单独使⽤该选项,要么和其他选项⼀起使⽤。
可以使⽤某种⽂件名模式来匹配⽂件,记住要⽤引号将⽂件名模式引起来。
不管当前路径是什么,如果想要在⾃⼰的家⽬录、$HOME中查找⽂件名符合*.log的⽂件,使⽤‘~’作为‘pathname’参数,波浪号~代表了你的$HOME⽬录。
# find ~ -name “*.log”当前⽬录:# find . –name “*.log”绝对路径:# find /etc -name “*.log”以⼀个⼤写字母开头的⽂件# find . –name “[A-Z]*”如果想在当前⽬录查找⽂件名以⼀个个⼩写字母开头,最后是4到9加上.log结束的⽂件:命令:# find . –name “[a-z]*[4-9].log”Perm选项:按照⽂件权限模式⽤-perm选项,按⽂件权限模式来查找⽂件的话。
最好使⽤⼋进制的权限表⽰法。
# find . -perm 755还有⼀种表达⽅法:在⼋进制数字前⾯要加⼀个横杠-,表⽰都匹配,如-007就相当于777,-005相当于555。
# find . -perm -005Prune选项:如果在查找⽂件时希望忽略某个⽬录,因为你知道那个⽬录中没有你所要查找的⽂件,那么可以使⽤-prune选项来指出需要忽略的⽬录。
在使⽤-prune选项时要当⼼,因为如果你同时使⽤了-depth选项,那么-prune选项就会被find命令忽略。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
整篇文章循序渐进,从最常用的文件名测试项开始步步深入,到第六节基本讲完find处理文件的规则,再之后的章节是一些常用表达式的说明。
(此篇中所有选项及例子基于GNU find version 4.2.28)
expr1 -or expr2
同上,但是POSIX不支持
expr1 , expr2
逗号表达式。expr1和expr2都会求值,但是只返Байду номын сангаасexpr2的值,expr1的值会被丢弃
正是因为有一个求值的顺序,所以你才有可能见到这样的写法:
$ find . -name "*.txt" -o -print
total 224
-rw-r--r-- 1 xixi admin 0 2007-11-01 17:34 0dfe.c
-rw-r--r-- 1 abc admin 0 2007-10-30 15:56 0s8a.txt
-rw-r--r-- 1 abc admin 0 2007-11-04 01:00 0TMP123
-rw------- 1 abc admin 38 2007-11-05 14:58 puk.txt
phone1$ ls -l
total 0
-rw-r--r-- 1 xixi admin 0 2007-11-07 01:07 hello.c
phone2$ ls -l
total 0
(一)Get Start
最简单的find用法莫过于如此:
$ find .
查找当前目录下的所有文件。
find命令的一般格式为:
find [-H] [-L] [-P] [path...] [expression]
其中,'-H' '-L' '-P'三个选项主要是用来处理符号连接,'-H'表示只跟随命令行中指定的符号连接,'-L'表示跟随所有的符号连接,'-P'是默认的选项,表示不跟随符号连接。
(三)正则表达式
使用上面的-name测试项能解决许多问题,但是有些还是不太好办,比如:查找当前目录下名称全部为数字的c源代码文件,这时就该'-regex'出手了。正则表达式绝对值得你去好好研究一下,在unix系统下太有用了,这里不做过多说明,请读者自行学习。
-regex 同样属于测试项。使用-regex时有一点要注意:-regex不是匹配文件名,而是匹配完整的文件名(包括路径)。例如,当前目录下有一个文件"abar9",如果你用"ab.*9"来匹配,将查找不到任何结果,正确的方法是使用".*ab.*9"或者".*/ab.*9"来匹配。
正是[expression]部分的丰富,才使得find如此强大。此部分较复杂,后面慢慢说明。
(二)文件名
根据文件名来查找一个文件是大家经常遇到的事情,第一节中的'-name'正是解决此问题的。
-name属于表达式中的测试项(test),它按照文件名模式来匹配文件,若匹配则返回true,否则返回false。最好用引号将文件名模式引起来,防止shell自己解析要匹配的字符串。(可以用单引号也可以用双引号,单引号和双引号在shell环境中的区别见后续部分)
$ find . -size +0c -wholename "*e*[0-9]*" -o ! \( -name "." -o -name "*phone" \) -prune -name "*.c" -user xixi -o -name "*phone"
下面是当前目录下的所有文件:
$ ls -l
lrwxrwxrwx 1 abc admin 15 2007-11-04 11:48 e1000 -> ../e1000-7.6.9/
-rw-r--r-- 1 abc admin 70 2007-11-05 14:57 e100.dat
lrwxrwxrwx 1 abc admin 13 2007-11-05 14:59 e100puk.txt -> phone/puk.txt
(2) 令文件变量File = PATHP1
(3) 对File文件进行TEST1测试,若执行结果为false,转(8)
(4) 对File文件进行ACT1动作,若执行结果为false,转(8)
(5) 对File文件进行TEST2测试,若执行结果为true,转(7)
(6) 对File文件进行TEST3测试,若执行结果为false,转(8)
$ find . -name "[^A-Z][a-z][0-9][0-9].txt" -print
./@y38.txt
注意:此处的模式匹配并不符合正则表达式。
-name对大小写字母敏感,如果想匹配时不考虑大小写可以使用-iname测试项。'i'可以加在许多选项前面,比如-ipath,-iregex,-iwholename等等,都是表示大小写不敏感。
看看这个例子,当前目录下有一个phone目录,phone目录里有一个文件名称是puk.txt,使用-path:
$ find . -path '*phone/pu*'
./phone/puk.txt
另外要提一点:使用-path的一般格式是:find [path ...] -path pattern ...
例如,想要的当前目录及子目录中查找文件名以一个大写字母开头或者以小写a或b开头的文件,可以用:
$ find . -name "[A-Za-b]*" -print
./a_book_of_c.chm
./TMP1234
如果想在当前目录查找文件名不以大写字母开头,之后跟一个小写字母,再之后是两个数字,最后是.txt的文件,可以这么用:
针对上面的那个查找c代码的问题,可以这么写:
$ find . -regex ".*/[0-9]*\.c" -print
./2234.c
还有一个设置项(option)'-regextype',可以让你根据自己的喜好选择使用的正则表达式类型,大家可以试试。
(四)wholename与path
或者使用 '-L'选项
$ find -L . -name "*[0-9].c" -print
格式中的[path...]部分表示以此目录为根目录进行搜索。
格式中的[expression]是一个表达式。最基本的表达式分为三类:设置项(option)、测试项(test)、动作项(action),这三类又可以通过逻辑运算符(operator)组合在一起形成更大更复杂的表达式。设置项(如-depth,-maxdepth等)针对这次查找任务,而不是仅仅针对某一个文件,设置项总是返回true;测试项(test)则不同,它针对具体的一个文件进行匹配测试,如-name,-num,-user等,返回true或者false;动作项(action)则是对某一个文件进行某种动作(最常见的如-print),返回true或者false。
(7) 对File文件进行ACT2动作
(8) 若File文件是一个目录,并且没有被执行过-prune动作,则进入此目录
(9) 当前目录下是否还有文件,若有依次取一个文件,令File指向此文件,转(3);
既然上一节提到了完整文件名(包括路径名),那么这里不妨说一下-wholename和-path。
-wholename和-path都属于测试项(test),而且功能也一样。-path从字面上看给人一种错觉,好像只匹配路径名(或者目录名),其实它也可以匹配文件名,因此-wholename这个名字更贴切一些。
-rw-r--r-- 1 abc admin 0 2007-11-06 22:21 e680phone
drwxr-xr-x 2 abc admin 37 2007-11-06 22:24 phone
drwxr-xr-x 2 abc admin 20 2007-11-07 01:07 phone1
drwxr-xr-x 2 abc admin 6 2007-11-05 15:37 phone2
-rw-r--r-- 1 abc admin 67 2007-11-04 12:23 @y38.txt
phone$ ls -l
total 4
-rw-r--r-- 1 abc admin 0 2007-11-06 22:24 e680gphone
find命令递归遍历所指定的目录树,针对每个文件依次执行find命令中的表达式,表达式首先根据逻辑运算符进行结合,然后依次从左至右对表达式求值。以下面代码为例,进行说明
find PATHP1 OPT1 TEST1 ACT1 ( TEST2 or TEST3 ) ACT2
(1) 根据OPT1设置项进行find命令的整体设置,若没有-depth设置项,依次进行下面的步骤
它的意思是:在[path ...]部分指明的路径上,使用pattern匹配所有文件的完整文件名;而不是说在类似的pattern目录下查找文件。
(五)逻辑运算符
有了上面三个选项,你现在应该对文件名的相关匹配得心应手了,对于不是很复杂的查找应该也胜任了。但是看看这个例子,解释一下它在做什么?
表示,如果表达式-name "*.txt"为真,就不再执行另一个表达式-print,即查找所有不是以.txt结尾的文件。