linux下find命令使用实例
使用find命令查找并删除指定权限的文件和的技巧

使用find命令查找并删除指定权限的文件和的技巧使用find命令查找并删除指定权限的文件的技巧在Linux系统中,find命令是一种非常有用的工具,它可以帮助我们搜索指定条件下的文件,并对其进行各种操作。
其中,使用find命令查找并删除指定权限的文件是一种常见的需求。
本文将介绍如何使用find命令来实现这一目标,并分享一些与此相关的技巧。
1. 查找指定权限的文件要查找符合指定权限的文件,可以使用find命令的-perm选项。
它可以接受一个由数字表示的权限参数作为参数,表示要搜索的文件所需的权限。
以下是一个示例:```shellfind /path/to/search -perm 权限模式```其中,`/path/to/search`是要搜索的目录路径,`权限模式`是一个三位或四位数字,用于指定文件的权限。
例如,如果我们要查找所有具有读写权限的文件,可以使用以下命令:```shellfind /path/to/search -perm 600```2. 删除指定权限的文件在找到符合条件的文件后,我们通常会希望将其删除。
为了实现这一目标,我们可以结合find命令和rm命令来完成。
以下是一个示例:```shellfind /path/to/search -perm 权限模式 -exec rm {} \;```其中,`/path/to/search`是要搜索的目录路径,`权限模式`是一个三位或四位数字,用于指定文件的权限。
例如,如果我们要删除所有具有可执行权限的文件,可以使用以下命令:```shellfind /path/to/search -perm 700 -exec rm {} \;```这样,find命令会在指定目录下搜索所有符合条件的文件,并将每个文件传递给rm命令进行删除。
3. 多条件组合查询除了权限外,我们还可以结合其他条件对文件进行筛选。
find命令支持通过逻辑操作符(如-and、-or、-not)来对多个条件进行组合查询。
Linux的五个查找命令

$ 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开头的文件。
ls命令和find命令详解

find命令用法一、Linux中find常见用法示例·find path -option [ -print ] [ -exec -ok command ] {} \;#-print 将查找到的文件输出到标准输出#-exec command {} \; -----将查到的文件执行command操作,{} 和\;之间有空格#-ok 和-exec相同,只不过在操作前要询用户====================================================-name filename #查找名为filename的文件-perm #按执行权限来查找-user username #按文件属主来查找-group groupname #按组来查找-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前-atime -n +n #按文件访问时间来查GIN: 0px">-perm #按执行权限来查找-user username #按文件属主来查找-group groupname #按组来查找-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前-atime -n +n #按文件访问时间来查找文件,-n指n天以内,+n指n天以前-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存-newer f1 !f2 找文件,-n指n天以内,+n指n天以前-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存-newer f1 !f2 #查更改时间比f1新但比f2旧的文件-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件-size n[c] #查长度为n块[或n字节]的文件-depth #使查找在进入子目录前先行查找完本目录-fstype #查更改时间比f1新但比f2旧的文件-mount #查文件时不跨越文件系统mount点-follow #如果遇到符号链接文件,就跟踪链接所指的文件-cpio #对匹配的文件使用cpio命令,将他们备份到磁带设备中-prune #忽略某个目录====================================================$find ~ -name "*.txt" -print #在$HOME中查.txt文件并显示$find . -name "*.txt" -print$find . -name "[A-Z]*" -pri26nbsp; #对匹配的文件使用cpio命令,将他们备份到磁带设备中-prune #忽略某个目录$find . -name "[A-Z]*" -print #查以大写字母开头的文件$find /etc -name "host*" -print #查以host开头的文件$find . -name "[a-z][a-z][0--9][0--9].txt" -print #查以两个小写字母和两个数字开头的txt文件$find . -perm 755 -print$find . -perm -007 -exec ls -l {} \; #查所有用户都可读写执行的文件同-perm 777 $find . -type d -print 打印目录结构$find . ! -type d -print 打印非目录文件find /usr/include -name '*.h' -exec grep AF_INEF6 {} \; 因grep无法递归搜索子目录,故可以和find相结合使用。
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层目录开始递归。
linux下查找某个文件位置的方法

Linux下查找某个文件位置的方法1.介绍在L in ux系统中,查找某个文件的位置是非常常见的操作之一。
无论是管理文件、查找配置文件还是定位日志文件,都需要掌握一些简单而有效的方法来查找文件的位置。
本文将介绍几种在L in ux下查找某个文件位置的方法,并提供示例说明。
2.使用fin d命令f i nd命令是L in ux系统中查找文件的强大工具之一。
它可以根据指定的条件在文件系统中查找文件,并返回相应的结果。
以下是使用fi nd 命令在L in ux中查找文件位置的基本语法:f i nd<路径><匹配条件>其中,`<路径>`表示要查找的文件所在的目录路径,可以是绝对路径或相对路径;`<匹配条件>`为可选参数,可用于指定查找文件的类型、文件名等条件。
以下是几个使用f ind命令查找文件位置的示例:2.1按文件名查找如果你知道要查找的文件的文件名,可以使用以下命令来查找文件在L i nu x系统中的位置:f i nd/-na me<文件名>其中,`<文件名>`为要查找的文件名。
该命令将从根目录开始递归地查找匹配的文件,并返回其完整路径。
2.2按文件类型查找如果你想根据文件类型来查找文件的位置,可以使用以下命令来查找指定类型的文件:f i nd/-ty pe<文件类型>其中,`<文件类型>`为要查找的文件类型,例如f表示普通文件,d表示目录。
该命令将从根目录开始递归地查找匹配的文件,并返回其完整路径。
2.3限制查找深度有时我们只想在特定的目录层级范围内查找文件,可以使用以下命令来限制查找的深度:f i nd/-ma xd ep th<深度>-na me<文件名>其中,`<深度>`表示要限制的目录层级深度,`<文件名>`为要查找的文件名。
该命令将从根目录开始递归地查找指定深度内匹配的文件,并返回其完整路径。
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和exec命令批量操作文件
Linux命令高级技巧使用find和exec命令批量操作文件在Linux系统中,find和exec是两个功能强大的命令,它们可以帮助我们批量操作文件,提高工作效率。
本文将介绍find和exec命令的基本使用方法,并提供一些高级技巧,帮助读者更好地利用这两个命令。
一、find命令基本用法find命令是Linux系统中用于查找文件的命令,它可以按照指定的条件搜索文件,并返回满足条件的文件列表。
find命令的基本语法如下:```find [path] [options] [expression]```其中,[path]表示搜索的路径,默认为当前目录;[options]表示find命令的选项,用于指定搜索的条件;[expression]表示用于判断文件是否满足条件的表达式。
下面是一些常用的find命令选项:1. -name选项:按照文件名进行搜索,可以使用通配符。
2. -type选项:按照文件类型进行搜索,如f表示普通文件,d表示目录。
3. -size选项:按照文件大小进行搜索,可以使用+和-表示大于或者小于指定大小的文件。
4. -mtime选项:按照文件最后修改时间进行搜索,可以使用+和-表示N天前或者N天内修改的文件。
例如,要查找当前目录及子目录中所有以.txt结尾的文件,可以使用以下命令:```find . -name "*.txt"```二、exec命令的作用exec命令是find命令的一个选项,它用于对find命令返回的文件列表执行特定的操作。
exec命令的基本语法如下:```find [path] [expression] -exec [command] {} \;```其中,[command]表示要执行的命令,{}表示find命令返回的文件名,\;表示命令的结束符号。
通过使用exec命令,我们可以对find命令返回的文件列表进行各种操作,比如复制、删除、移动等。
三、实例演示以下是一些实例演示,展示了find和exec命令的高级技巧,以及如何结合使用这两个命令来批量操作文件。
find用法 linux -回复
find用法linux -回复Find命令是Linux系统中一个非常强大且常用的命令,用于查找文件、目录以及符合某些条件的内容。
它提供了许多选项和参数,以便根据不同的需求来搜索文件。
本文将逐步解释find命令的使用方法,以及一些常见的应用场景。
一、查找文件和目录首先,我们来看一下最基本的用法。
要在Linux系统中查找文件或者目录,可以使用以下命令格式:find [路径] [选项] [表达式]其中,路径是需要查找的目录或者文件的路径;选项用于指定查找的属性和条件;表达式用于指定要查找的文件或目录的模式。
示例1:查找当前目录下所有的.txt文件。
find . -name "*.txt"- "."表示当前目录,也可以通过指定其他目录来搜索。
- "-name"选项用于指定文件名模式,这里我们使用通配符"*"来匹配所有文件,后缀为".txt"的文件。
示例2:查找当前目录下大小大于10MB的文件。
find . -size +10M- "-size"选项用于指定文件大小,"+10M"表示文件大小大于10MB。
示例3:查找当前目录下最近7天内修改过的文件。
find . -mtime -7- "-mtime"选项用于指定文件的修改时间,"-7"表示7天以内的文件。
二、查找并执行操作除了寻找文件和目录,find命令还可以与-exec参数结合使用,以便在找到文件后执行某些操作。
下面是一个例子:示例4:查找当前目录下以".txt"结尾的文件,并将它们复制到新的目录。
find . -name "*.txt" -exec cp {} /新目录\;- "{}"表示找到的文件。
这里我们将它们复制到了新目录,你可以根据需要修改目标目录的路径。
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”的文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
linux下find命令使用实例
find命令用于查找文件和目录,任何位于参数之前的字符串都将被视为欲查找的目录。
find 可以指定查找条件如名称,类型,时间,文件大小,权限和所有者查找,针对多个条件进行与或非的逻辑运算。
我们可以控制find的查找的行为,还可以和其他命令组合使用。
find
find .
find . -print
三者等效, 查找当前目录下所有的文件和目录(递归子目录),以每行一个文件或者目录的形式列举出,不包含隐藏文件
find lib opt bin
同上,查找指定的多个目录(lib/opt/bin)
一、指定查找条件
1) 按名称查找
find . -name readme.txt
查找当前目录下(递归子目录)的所有名为readme.txt的文件
find . -name \*.txt
find . -name "*.txt"
查找当前目录下(递归子目录)的所有名称以.txt结尾的文件,注意*号的写法,需要前面加\或者放到双引号中
find . -iname \*.txt
默认find是区分大小写的,如果不想区分大小写,请使用-iname替代-name,如上则"abc.TXT"将被查找到
2) 按类型查找
find . -type d
查找当前目录下(递归子目录)的所有目录
find . -type f
查找当前目录下(递归子目录)的所有文件
find . -type l
查找当前目录下(递归子目录)的所有符号链接
3) 按时间查找
1. 以小时为单位的时间
find 命令三个选项用于按照时间查找,单位都是小时:
mtime —文件内容上次修改时间
atime —文件被读取或访问的时间
ctime —文件状态变化时间
这三个选项都需要配置一个n值使用,可以是-n / n / +n:
-n 小于n
n 正好与n 相等
+n 大于n
find . -mtime -1
查找当前目录下(递归子目录)的所有1小时内修改的文件和目录
find . -mtime +1
查找当前目录下(递归子目录)的所有修改时间超过1小时的文件和目录
find . -mtime 1
查找当前目录下(递归子目录)的所有恰好在1小时前修改的文件和目录
2. 以分钟为单位的时间
用法和*time类似,mmin、amin和cmin 的不同在于单位时间是分钟,用于查找在不到1小时的时间内变化了的文件和目录
find . -mmin -10
查找当前目录下(递归子目录)的所有10分钟内修改的文件和目录
find . -mmin +20
查找当前目录下(递归子目录)的所有20分钟外1小时内修改的文件和目录
3. 与特定的文件比较
-newer,-anewer和-cnewer选项用于查找与特定的文件比较的已修改或访问过的文件,类似mtime,atime和ctime
-newer 指内容最近被修改的文件
-anewer 指最近被读取过的文件
-cnewer 指状态最近发生变化的文件
find . -newer a.txt
查找当前目录下(递归子目录)的所有修改时间在a.txt之后(所以文件更新)的文件和目录
4) 按文件大小查找
1. -size 选项用于查找满足指定的大小条件的文件(注意不查找目录), +表示大于, -表示小于, 没有+1表示正好等于。
文件大小的单位可以是字节(用c表示), kb(用k表示)。
find . -size -100c
查找当前目录下(递归子目录)的所有文件大小小于100字节的文件
find . -size +100k
查找当前目录下(递归子目录)的所有文件大小大于100k的文件
find . -size 0
查找当前目录下(递归子目录)的所有文件大小为0的文件
2. -empty 查找空文件和空文件夹, 和-size 0不同的在于-size 0 只查找空文件,或者说
-empty -type f 等同于-size 0 :
find . -empty
查找当前目录下(递归子目录)的所有文件大小为0的文件和空文件夹
find . -empty -type f
查找当前目录下(递归子目录)的所有文件大小为0的文件
find . -empty -type d
查找当前目录下(递归子目录)的所有空目录
5) 按权限和所有者查找
find . -perm 777
查找当前目录下(递归子目录)的所有权限为777的文件和目录
find . -perm -u=rwx
查找当前目录下(递归子目录)的所有user权限为rwx的文件和目录
find . -perm -ug=x
查找当前目录下(递归子目录)的所有user和group权限为x的文件和目录
find . -user sky
查找当前目录下(递归子目录)的所有user为sky的文件和目录
find . -group users
查找当前目录下(递归子目录)的所有group为users的文件和目录
二、查找条件的逻辑运算
1. 逻辑与
find . -name "*.java" -size -mmin -10
find . -name "*.java" -a -size -mmin -10
查找当前目录下(递归子目录)的所有名为*.java并且修改时间在10分钟之内的文件,-a是默认选项
2. 逻辑或
find . -name "*.class" -o -name "*.jar"
查找当前目录下(递归子目录)的所有名为*.class或者*.jar的文件和目录
3. 逻辑非
find . ! -user sky
查找当前目录下(递归子目录)的所有user不是sky的文件和目录
三、控制查找的行为
find . -maxdepth 3 -name "*.txt"
查找当前目录下(递归子目录)的所有名为*.txt的文件,目录深度不超过3层
find . -maxdepth 1 -name "*.txt"
查找当前目录下(不递归子目录,因为maxdepth为1)的所有名为*.txt的文件
find . -mindepth 3 -name "*.txt"
查找当前目录下(递归子目录)的所有名为*.txt的文件,目录深度不低于3层
find . -mindepth 1 -name "*.txt"
查找当前目录下的子目录中(递归子目录)的所有名为*.txt的文件,不包含当前目录
find . -depth -name "*.txt"
查找当前目录下(递归子目录)的所有名为*.txt的文件,每个目录都是先在目录中进行查找,然后才继续查找其子目录
四、find和其他命令的组合
find . -name "*.jar" -exec ls -l {} \;
find . -name "*.jar" -ls
查找当前目录下(递归子目录)的所有*.jar文件并使用ls -l列出详细信息
find . -name "*.java" -exec grep -H -m 1 HashMap {} \;
查找当前目录下(递归子目录)的所有的含有"HashMap"字样的*.java文件
(grep -H -m 1的意思是打印文件名,而且如果文件中有一次匹配就退出,避免多次匹配时为这一个文件打印多行)
find . -name "*.sh" -exec mv {} backup \;
查找当前目录下(递归子目录)的所有的*.sh文件并移动到backup目录中、、、、
=========================================================
以上是截取的别人的参数说明,
下面是自己使用的经验实例,会陆续添加
=========================================================
1. 统计代码行数:
find ./ -name "*.[ch]" -o -name "*.cpp" | xargs wc -l
-o表示两个表达式或的关系。
其他关系例如:-a,-not,等。
xargs将文本内容拆成后面命令的参数。