文件搜索命令:find
命令名称:find
命令所在路径:/bin/find
执行权限:所有用户
语法:find [搜索范围][匹配条件]
功能描述:文件搜索
常用选项
-amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-anewer<参考文件或目录>:查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录;
-atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-cmin<分钟>:查找在指定时间之时被更改过的文件或目录;
-cnewer<参考文件或目录>查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-ctime<24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
-daystart:从本日开始计算时间;
-depth:从指定目录下最深层的子目录开始查找;
-expty:寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录;
-exec<执行指令>:假设find指令的回传值为True,就执行该指令;
-false:将find指令的回传值皆设为False;
-fls<列表文件>:此参数的效果和指定“-ls”参数类似,但会把结果保存为指定的列表文件;
-follow:排除符号连接;
-fprint<列表文件>:此参数的效果和指定“-print”参数类似,但会把结果保存成指定的列表文件;
-fprint0<列表文件>:此参数的效果和指定“-print0”参数类似,但会把结果保存成指定的列表文件;
-fprintf<列表文件><输出格式>:此参数的效果和指定“-printf”参数类似,但会把结果保存成指定的列表文件;
-fstype<文件系统类型>:只寻找该文件系统类型下的文件或目录;
-gid<群组识别码>:查找符合指定之群组识别码的文件或目录;
-group<群组名称>:查找符合指定之群组名称的文件或目录;
-help或——help:在线帮助;
-ilname<范本样式>:此参数的效果和指定“-lname”参数类似,但忽略字符大小写的差别;
-iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;
-inum<inode编号>:查找符合指定的inode编号的文件或目录;
-ipath<范本样式>:此参数的效果和指定“-path”参数类似,但忽略字符大小写的差别;
-iregex<范本样式>:此参数的效果和指定“-regexe”参数类似,但忽略字符大小写的差别;
-links<连接数目>:查找符合指定的硬连接数目的文件或目录;
-iname<范本样式>:指定字符串作为寻找符号连接的范本样式;
-ls:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出;
-maxdepth<目录层级>:设置最大目录层级;
-mindepth<目录层级>:设置最小目录层级;
-mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
-mount:此参数的效果和指定“-xdev”相同;
-mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-nogroup:找出不属于本地主机群组识别码的文件或目录;
-noleaf:不去考虑目录至少需拥有两个硬连接存在;
-nouser:找出不属于本地主机用户识别码的文件或目录;
-ok<执行指令>:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“Y”,则放弃执行命令;
-path<范本样式>:指定字符串作为寻找目录的范本样式;
-perm<权限数值>:查找符合指定的权限数值的文件或目录;
-print:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;
-print0:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;
-printf<输出格式>:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定;
-prune:不寻找字符串作为寻找文件或目录的范本样式;
-regex<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-size<文件大小>:查找符合指定的文件大小的文件;
-true:将find指令的回传值皆设为True;
-typ<文件类型>:只寻找符合指定的文件类型的文件;
-uid<用户识别码>:查找符合指定的用户识别码的文件或目录;
-used<日数>:查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算;
-user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;
-version或——version:显示版本信息;
-xdev:将范围局限在先行的文件系统中;
-xtype<文件类型>:此参数的效果和指定“-type”参数类似,差别在于它针对符号连接检查
按文件名查找常用操作
# find /etc -name init #在etc目录下查找init的文件
/etc/sysconfig/init
# find /etc -name *init* # *号表示通配符只要文件名包含init都匹配出来
# find /etc -name init* #以所有以init开头全部匹配出来
# find /etc -name init??? #匹配init后面三个字符不清楚一个问号表示一个字符
# find /etc -iname init #不区分大小写
# find /etc -name init* -type f #以etc目录下init开头的文件全部列出来
# find /etc -name init* -type d #以etc目录下init开头的目录全部列出来
# find /etc -name init* -type l #以etc目录下init开头的软连接全部列出来
-inum根据i(inode)
节点查找
测试
# touch "11 22" #创建一个文件
# rm 11 22 #删除这时候是无法删除的
rm: 无法删除"11": 没有那个文件或目录
rm: 无法删除"22": 没有那个文件或目录
# ls -i #这时候列出inode
37676584 11 22 33582978 anaconda-ks.cfg
# find . -inum 37676584 -exec rm {} \; #用find来查找(.是在当前目录查找)查找然后删除
注:千万不要在服务器高峰期用find查找,查找范围越小越好,能不再跟分区就不再根分区查找,搜索条件越精准越好。 根据文件大小查找
+n大于 -n小于 n等于
# find / -size +100M #在根搜索所有大于100M的文件
要查找大于50M小于20M 这两个条件必须同时满足
-a 两个条件同时满足
-o 两个条件满足任意一个即可
# find /etc -size +5M -a -size -20M #在etc目录下查找大于5M小于20M的文件
# find /etc -size +5M -0 -size -20M #在etc目录下查找大于5M或者小于20M的文件
根据所有者来查找
# find / -user php-fpm #根据所有者查找
# find / -group php-fpm #根据所属组查找
根据时间属性查找
-amin 访问时间 access 访问时间有cat tail less等等
-cmin 文件属性 change 文件的属性改了有chmod
-mmin 文件内容 modify 文件里面的内容被改了
# find /etc -amin -30 #在etc目录下30分钟以内访问文件有哪些
# find /etc -cmin -30 #在etc目录下30分钟以内被改的文件属性有哪些
# find /etc -mmin -30 #在etc目录下30分钟以内被修改文件内容有哪些
在etc下查找inittab文件并显示详细信息
# find /etc -name inittab -exec ls -l {} \; #查找命令显示详细信息出来
-rw-r--r--. 1 root root 511 10月 31 2018 /etc/inittab
# find /etc -name init* -type f -exec ls -l {} \;
-rw-r--r--. 1 root root 511 10月 31 2018 /etc/inittab
-rw-r--r--. 1 root root 798 10月 31 2018 /etc/sysconfig/init
-rwxr-xr-x. 1 root root 5419 8月 24 2018 /etc/sysconfig/network-scripts/init.ipv6-global
-rw-r--r--. 1 root root 30 11月 3 2018 /etc/selinux/targeted/contexts/initrc_context
# find /etc -name init* -type f -ok ls -l {} \; #一个个显示
< ls ... /etc/inittab > ? y #y查看详细
-rw-r--r--. 1 root root 511 10月 31 2018 /etc/inittab
< ls ... /etc/sysconfig/init > ? n #n不看
< ls ... /etc/sysconfig/network-scripts/init.ipv6-global > ? y #看
-rwxr-xr-x. 1 root root 5419 8月 24 2018 /etc/sysconfig/network-scripts/init.ipv6-global
< ls ... /etc/selinux/targeted/contexts/initrc_context > ? n #不看
文件名后缀
.bz2 ------bzip2的压缩文件
.gz ------gzip的压缩文件
.tar ------tar打包文件(是包文件不是压缩文件)
.tbz------tar打包并用bzip压缩文件
.tgz-----tar打包并用gzip压缩的文件
.html/.htm-----HTML文件
.jpg-----JPEG图象文件
.png-----PNG图象文件
.txt------纯文本文件
.conf-------配置文件
.lock-------LOCK文件(用来判断一个文件或设备是否被使用)
.rpm------REDHATPackage.Manager文件(套件包或软件包)
.c -------C源程序代码文件
.cpp------C++源程序代码文件
.h -------C或C++程序的头文件
.o------程序目标文件
.pl------perl脚本文件
.so-----类库文件
Linux和windows互传文件
xshell下使用,putty不可用 安装插件
# yum intsall -y lrzsz
Windows向linux传文件
#rz
linux向Windows传文件
#sz 1.txt