linux 操作系统find命令操作总结
2018-02-08 13:49
246 查看
find 在linux系统中功能非常强大,根据各种给出的条件在系统搜索所需内容。
语法为: find 路径 -命令参数 [输出形式]
这里需要注意:路径紧跟在命令之后
以下介绍具体用法: 1, 查找按文件名:-name
find /etc -name passwd : 在etc目录下查找名为:passwd的目录,软链接,普通文件。。。。。
默认find将查找到的文件显示出来。和-printf作用相同
find /etc -name "[0-9]*" :在etc目录下查找文件名一数字开头的文件
find /etc ! -name passwd: 在etc目录下查找名不为passwd的文件。
2,查找时指定查找的目录层级:-maxdepth
find /etc -maxdepth 3 -name "[0-9]*" :在etc目录及以下3层目录中查找文件名以数字开头的文件。
3,按修改时间进行查找:-mtime -mmin -atime -amin -ctime -cmin
find / -mtime +500 :查找系统中修改时间为500天以前的文件
find / -mtime +500 :查找系统中修改时间为500天当天修改的文件
find / -mtime -500 : 查找系统中修改时间为500天以内修改的文件
find / -mmin -5 : 查找系统中修改时间为5分钟以内修改的文件
-atime -amin -ctime -cmin 与-mtime -mmin同理
4, 按文件权限来查找:-perm
-perm 后面跟的模式分为3种:mode 、-mode、+mode
mode:完全匹配,如mode为755转换为二进制位111 101 101,要求查找出来的文件权限的
二进制位必须一一对齐即为755.
find /etc -perm 755 :在系统中查找文件权限为755的文件。
-mode:表示mode转换成二进制中1的文件权限必须匹配,如:644 二进制位110 100 100
要求查找的文件权限二进制必须为11x,1xx,1xx,其中x位既可以为0,也可以为1.
也就是查找的文件权限必须包含-mode的权限二进制的中1的位置。如:110 110 110
、111 110 110、111 111 111、均匹配,101 100 100 就不匹配因为前三位属主权限
w的权限不匹配。
+mode:要求mode给出的权限二进制中含有1的位,任意一个匹配即可。-mode要求给出的
权限二进制中含有1的位都必须匹配,如:644转换为二进制位110 110 100
即、100 100 100、010 100 100、110 010 100、110 100 100 均匹配。
截图待定
5,按属主-user username,属组查找-group groupname,无属主-nouser,无属组-nogroup
find /var -type f -user jjj :查找/var中属主为jjj的文件
find /home -type -group uuu01 :查找/home中属组为uuu01的文件
find /home -type -user jjj -group uuu01 :查找/home中属主为:jjj 属组为:uuu01的文件
find / -type f -nouser:查找系统无属主的文件
由图可见属主名称为包含在/etc/passwd中用UID来显示
find / -type f -nogroup :查找无属组的文件
find / -type f -nouser -o -nogrop :查找无属主文件或无属组的文件。
6,按文件大小查找 :-size
-size 后面接三种模式的文件大小:
n:等于n的文件
+n :大于n的文件
-n :小于n的文件
另外:n如果指定单位(K M G)则按指定单位查找,若未指定单位,则默认单位为块
1块为512字节即 2048为1M 1024*2*512byte=1024*1KB=1M
也指定单位为c即为字符 1024c=K 10240c=10K
find / -type f -size +1G :查找系统中大于1GB的文件
find / -type f -size 4096 :查找系统中大小为2M的文件:4096*512byte=2M
7,按文件类型查找:-type d/f/b/c/p/l/s
8,参照文件新旧查找:-newer
find / -type f -newer ./i -exec ls -l {} \; :在系统查找比i文件更新的文件
-newer file1 ! file2 :查找更改时间比file1新但比file2旧的文件
9, -depth:查找文件时先查找当前目录,在查找其他目录。
10,-mount:在查找文件时不跨越文件系统mount点。
11, -follow:遇到符号链接文件时,跟踪至链接所指向的文件。
12, -cpio:对匹配的文件使用cpio命令,将这些文件备份至磁带设备中。
13, -fstype:查找位于某一文件系统中的文件,文件系统类型参考/etc/fstab
14,两个条件同时满足:-a 两个条件满足任意一个:-o
15,对查找后的内容进行操作:-exec -ok
-exec和-ok不同之处在于:-ok每次进行操作之前会询问
16,查找排除目录:-prune (如果同时制定了-depth,那么-prune将忽略) 在Windows中可以在某些路径中查找文件,也可以设定不在某些路径中查找文件,下面用Linux中的find的命令结合其-path -prune参数来看看在Linux中怎么实现此功能。假如在当前目录下查找文件,且当前目录下有很多文件及目录(多层目录),包括dir0、dir1和dir2 ...等目录及dir00、dir01...dir10、dir11...等子目录。1. 在当前目录下查找所有txt后缀文件 find ./ -name *.txt2.在当前目录下的dir0目录及子目录下查找txt后缀文件 find ./ -path './dir0*' -name *.txt3.在当前目录下的dir0目录下的子目录dir00及其子目录下查找txt后缀文件 find ./ -path '*dir00*' -name *.txt4.在除dir0及子目录以外的目录下查找txt后缀文件 find ./ -path './dir0*' -a -prune -o -name *.txt -print说明:-a 应该是and的缩写,意思是逻辑运算符‘或’(&&); -o应该是or的缩写,意思是逻辑运算符‘与’(||), -not 表示非.命令行的意思是:如果目录dir0存在(即-a左边为真),则求-prune的值,-prune 返回真,‘与’逻辑表达式为真(即-path './dir0*' -a -prune 为真),find命令将在除这个目录以外的目录下查找txt后缀文件并打印出来;如果目录dir0不存在(即-a左边为假),则不求值-prune ,‘与’逻辑表达式为假,则在当前目录下查找所有txt后缀文件。5.在除dir0、dir1及子目录以外的目录下查找txt后缀文件 find ./ /( -path './dir0*' -o -path './dir1*' /) -a -prune -o -name *.txt -print注意:圆括号()表示表达式的结合。即指示 shell 不对后面的字符作特殊解释,而留给 find 命令去解释其意义。由于命令行不能直接使用圆括号,所以需要用反斜杠'/'进行转意(即'/'转意字符使命令行认识圆括号)。同时注意'/(','/)'两边都需空格。6.在dir0、dir1及子目录下查找txt后缀文件 find ./ /( -path './dir0*' -o -path './dir1*' /) -a -name *.txt -print +1. 在所有以名为dir_general的目录下查找txt后缀文件find ./ -path '*/dir_general/*' -name *.txt -print
语法为: find 路径 -命令参数 [输出形式]
这里需要注意:路径紧跟在命令之后
以下介绍具体用法: 1, 查找按文件名:-name
find /etc -name passwd : 在etc目录下查找名为:passwd的目录,软链接,普通文件。。。。。
默认find将查找到的文件显示出来。和-printf作用相同
find /etc -name "[0-9]*" :在etc目录下查找文件名一数字开头的文件
find /etc ! -name passwd: 在etc目录下查找名不为passwd的文件。
2,查找时指定查找的目录层级:-maxdepth
find /etc -maxdepth 3 -name "[0-9]*" :在etc目录及以下3层目录中查找文件名以数字开头的文件。
3,按修改时间进行查找:-mtime -mmin -atime -amin -ctime -cmin
find / -mtime +500 :查找系统中修改时间为500天以前的文件
find / -mtime +500 :查找系统中修改时间为500天当天修改的文件
find / -mtime -500 : 查找系统中修改时间为500天以内修改的文件
find / -mmin -5 : 查找系统中修改时间为5分钟以内修改的文件
-atime -amin -ctime -cmin 与-mtime -mmin同理
4, 按文件权限来查找:-perm
-perm 后面跟的模式分为3种:mode 、-mode、+mode
mode:完全匹配,如mode为755转换为二进制位111 101 101,要求查找出来的文件权限的
二进制位必须一一对齐即为755.
find /etc -perm 755 :在系统中查找文件权限为755的文件。
-mode:表示mode转换成二进制中1的文件权限必须匹配,如:644 二进制位110 100 100
要求查找的文件权限二进制必须为11x,1xx,1xx,其中x位既可以为0,也可以为1.
也就是查找的文件权限必须包含-mode的权限二进制的中1的位置。如:110 110 110
、111 110 110、111 111 111、均匹配,101 100 100 就不匹配因为前三位属主权限
w的权限不匹配。
+mode:要求mode给出的权限二进制中含有1的位,任意一个匹配即可。-mode要求给出的
权限二进制中含有1的位都必须匹配,如:644转换为二进制位110 110 100
即、100 100 100、010 100 100、110 010 100、110 100 100 均匹配。
截图待定
5,按属主-user username,属组查找-group groupname,无属主-nouser,无属组-nogroup
find /var -type f -user jjj :查找/var中属主为jjj的文件
find /home -type -group uuu01 :查找/home中属组为uuu01的文件
find /home -type -user jjj -group uuu01 :查找/home中属主为:jjj 属组为:uuu01的文件
find / -type f -nouser:查找系统无属主的文件
由图可见属主名称为包含在/etc/passwd中用UID来显示
find / -type f -nogroup :查找无属组的文件
find / -type f -nouser -o -nogrop :查找无属主文件或无属组的文件。
6,按文件大小查找 :-size
-size 后面接三种模式的文件大小:
n:等于n的文件
+n :大于n的文件
-n :小于n的文件
另外:n如果指定单位(K M G)则按指定单位查找,若未指定单位,则默认单位为块
1块为512字节即 2048为1M 1024*2*512byte=1024*1KB=1M
也指定单位为c即为字符 1024c=K 10240c=10K
find / -type f -size +1G :查找系统中大于1GB的文件
find / -type f -size 4096 :查找系统中大小为2M的文件:4096*512byte=2M
7,按文件类型查找:-type d/f/b/c/p/l/s
8,参照文件新旧查找:-newer
find / -type f -newer ./i -exec ls -l {} \; :在系统查找比i文件更新的文件
-newer file1 ! file2 :查找更改时间比file1新但比file2旧的文件
9, -depth:查找文件时先查找当前目录,在查找其他目录。
10,-mount:在查找文件时不跨越文件系统mount点。
11, -follow:遇到符号链接文件时,跟踪至链接所指向的文件。
12, -cpio:对匹配的文件使用cpio命令,将这些文件备份至磁带设备中。
13, -fstype:查找位于某一文件系统中的文件,文件系统类型参考/etc/fstab
14,两个条件同时满足:-a 两个条件满足任意一个:-o
15,对查找后的内容进行操作:-exec -ok
-exec和-ok不同之处在于:-ok每次进行操作之前会询问
16,查找排除目录:-prune (如果同时制定了-depth,那么-prune将忽略) 在Windows中可以在某些路径中查找文件,也可以设定不在某些路径中查找文件,下面用Linux中的find的命令结合其-path -prune参数来看看在Linux中怎么实现此功能。假如在当前目录下查找文件,且当前目录下有很多文件及目录(多层目录),包括dir0、dir1和dir2 ...等目录及dir00、dir01...dir10、dir11...等子目录。1. 在当前目录下查找所有txt后缀文件 find ./ -name *.txt2.在当前目录下的dir0目录及子目录下查找txt后缀文件 find ./ -path './dir0*' -name *.txt3.在当前目录下的dir0目录下的子目录dir00及其子目录下查找txt后缀文件 find ./ -path '*dir00*' -name *.txt4.在除dir0及子目录以外的目录下查找txt后缀文件 find ./ -path './dir0*' -a -prune -o -name *.txt -print说明:-a 应该是and的缩写,意思是逻辑运算符‘或’(&&); -o应该是or的缩写,意思是逻辑运算符‘与’(||), -not 表示非.命令行的意思是:如果目录dir0存在(即-a左边为真),则求-prune的值,-prune 返回真,‘与’逻辑表达式为真(即-path './dir0*' -a -prune 为真),find命令将在除这个目录以外的目录下查找txt后缀文件并打印出来;如果目录dir0不存在(即-a左边为假),则不求值-prune ,‘与’逻辑表达式为假,则在当前目录下查找所有txt后缀文件。5.在除dir0、dir1及子目录以外的目录下查找txt后缀文件 find ./ /( -path './dir0*' -o -path './dir1*' /) -a -prune -o -name *.txt -print注意:圆括号()表示表达式的结合。即指示 shell 不对后面的字符作特殊解释,而留给 find 命令去解释其意义。由于命令行不能直接使用圆括号,所以需要用反斜杠'/'进行转意(即'/'转意字符使命令行认识圆括号)。同时注意'/(','/)'两边都需空格。6.在dir0、dir1及子目录下查找txt后缀文件 find ./ /( -path './dir0*' -o -path './dir1*' /) -a -name *.txt -print +1. 在所有以名为dir_general的目录下查找txt后缀文件find ./ -path '*/dir_general/*' -name *.txt -print
相关文章推荐
- Linux中find、xargs命令使用及方法总结
- linux命令总结之查找命令find、locate、whereis、which、type
- linux下find(文件查找)命令的用法总结
- Linux命令总结_文件操作之cut
- linux查找命令、find、grep总结
- 总结linux下find命令
- 总结一下linuxc常用操作命令
- linux分享之locate、find命令使用总结
- linux中结合find命令做文件批量处理等操作
- Linux下4个查找命令which、whereis、locate、find的总结
- Linux find命令总结
- Linux终端下命令操作总结
- 【Linux】Linux中常用操作命令总结
- Linux下find(文件查找)命令使用实例总结
- linux常用命令操作总结
- linux下find命令总结
- [原创总结 不断更新]Linux 下常用命令操作总结
- Linux下关于find命令的总结
- Linux 下几个文件操作命令的代码实现,myfind find 查找命令 实现
- linux上操作web项目常用实用命令总结