find常用参数详解
find常用参数详解
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
在linux系统中,在init 3模式情况下都是命令行模式,这个时候我们想要找到一个文件的就得依赖一个非常好用的命令find,也是我们要学些的命令哟
再Linux操作系统的世界里,有各个不同的发行版本,redhat,centos,ubantu,suse,debian,fedora等等,我们需要在这些不通的操作系统中找一个文件,那么
我们开始今天的命令吧!
在学find命令之前,我们一起了解一下模糊匹配的命令locate,locate指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资
料先建立一个索引数据库,在 执行loacte时直接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接下达update强迫系统立即修改
索引数据库.我们可以理解成locate是一个模糊的匹配。
locate可以这么用:
[root@yinzhengjie ~]# updatedb //更新所有数据库
[root@yinzhengjie ~]# locate -n 5 passwd   //在系统更新的数据库(这个数据库存的都是目录或者文件还有路径)中查找含有passwd字样的文件,并输出前5行
/etc/passwd
/etc/passwd-
/etc/passwd.OLD
/etc/pam.d/passwd
/etc/security/opasswd
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# locate -i passwd //忽略文件的大小写,不管是大写还是小写都会被查出来的
[root@yinzhengjie ~]# locate passwd //查找还有passwd字样的文件,这个不包括大小写,我们可以通过下面返回结果来看那个搜索的文件比较多。

补充一下:
1.在这行中有个"|",表示将前面命令的输出结果让后面的命令去执行,如果有时间大家也可以学学shell,是一个很容易上手的脚本语言;
2."wc -l"统计文件的行数,包括空格行都统计的哟;
3.wc的语法:wc [参数] 文件
参数 含义
-c        显示文件的Bytes数(字节数)及文件名输出到屏幕上
-l        将每个文件的行数及文件名输出到屏幕上
-m      将每个文件的字符数及文件名输出到屏幕上,如果当前系统不支持多字节字符其将显示与-c参数相同的结果
-w      将每个文件含有多少个词及文件名输出到屏幕上
上面的location功能的确强大啊,find能找到的文件他都能找到呢,但是有的文件并不是我想要啊。假设我就想
找一下我的系统用户的配置文件的路径,没必要数出来156个参数啊,所以让我们精确查找一下文件吧;
find的语法使用格式:find [需要查找的路径(如果不写的话默认当前路径)][查找规则][查找完成后执行的动作]
下面让我们一起看看常用的方法吧:
1.查找系统用户存放文件【在跟目录下按名称查找】

怎么样,和locate相比更加精确吧,在这个5个文件找出系统用户存放的目录和在152个文件找出来这个文件要简单的多吧。
2.在几个不同的目录中查找处我的网页文件

3.该命令还支持通配符哟,如单个字符“?”,多个字符"*"
单个字符:

多个字符:

4.附加条件参数”-a “,“ -o ” ,“ –not”的使用
使用 -a这个参数可以链接2个不同的条件且这2个条件必须要满足!

用用-o这个参数链接2个不同的条件仅满足其中一个条件即可!

用-not表示对这2个条件取反

5.根据文件时间戳的相关属性来查找文件
查找一天内在/tem目录下没有访问过的文件

查找一天内在/tmp目录下访问过的文件

6.根据文件权限查找用-perm这个参数
查找该/tem权限是755的文件

7.使用exec这个参数对find的结果进行处理
首先看一下我的家目录/root下有一个文件

其次,让我们用find这个命令去做一件事情,

学东西要学会举一反三,我要删除30天之前的文件怎么搞呢?先闭上眼睛想一想,然后看看你跟我的操作是一样的吗?

看~已经成功删除了,之前的那些文件啦~那么你做到了吗?
8.根据文件的大小来查找文件内容
查找/root目录下等于2M的文件

查找家目录下大于2M的文件

查找当前目录下小雨1M的文件

9.根据文件的类型来查找文件(见下图,上面查找的是文件,下面查找的是目录。)

好了,举例子就到这里了,我把下面的参数留给你~你跟进上面的参数也应该可以参加用下面的参数了:
1.命令格式:
find pathname -options [-print -exec -ok ...]
2.命令功能:
用于在文件树种查找文件,并作出相应的处理
3.命令参数:
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。 
-print: find命令将匹配的文件输出到标准输出。 
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {  } \;,注意{   }和\;之间的空格。 
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
4.命令选项:
-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命令,将这些文件备份到磁带设备中。
另外,下面三个的区别:
-amin n   查找系统中最后N分钟访问的文件
-atime n  查找系统中最后n*24小时访问的文件
-cmin n   查找系统中最后N分钟被改变文件状态的文件
-ctime n  查找系统中最后n*24小时被改变文件状态的文件
-mmin n   查找系统中最后N分钟被改变文件数据的文件
-mtime n  查找系统中最后n*24小时被改变文件数据的文件
find常用参数详解的更多相关文章
- chattr的常用参数详解
		
chattr的常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在实际生产环境中,有的运维工程师不得不和开发和测试打交道,在我们公司最常见的就是部署接口.每天每个人部署的 ...
 - cat常用参数详解
		
cat常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近,我的一个朋友对linux特别感兴趣,于是我觉得每天交给他一个命令的使用,这样一个月下来也会使用30个命令,基 ...
 - rsync常用参数详解
		
rsync常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在linux中,一切皆是文件,包括你的终端,硬件设备信息,目录,内核文件等等.所以工作中我们难免会遇到拷贝文件 ...
 - Nginx核心配置文件常用参数详解
		
Nginx核心配置文件常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于Nginx权威文档的话童鞋们可以参考Nginx官方文档介绍:http://nginx.org/ ...
 - nmap常用参数详解
		
nmap常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 借用英雄联盟的一个英雄赵信的一句话:“即使敌众我寡,末将亦能万军丛中取敌将首级!”.三国关羽,万军丛中斩了颜良, ...
 - free命令常用参数详解
		
free命令常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在运维期间我们会经常去查看服务器硬件信息,比如说内存,大家可能知道看内存用“[root@yinzhengji ...
 - tcpdump常用参数详解
		
tcpdump常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 好久没有更新我的博客了,看来自己最近还没有在放假中回过神来啊,哈哈~是不是也有小伙伴跟我一样呢?回归正题, ...
 - DB2创建数据库常用参数详解
		
转自http://czmmiao.iteye.com/blog/1335801 DB2创建数据库常用参数详解 本文只介绍DB2 create database语法中的常用参数http://publib ...
 - Oracle GoldenGate常用参数详解
		
Oracle GoldenGate常用参数详解http://blog.itpub.net/28389881/viewspace-2564461/
 
随机推荐
- Python拾忆--多线程的socket服务器
			
阳光明媚的午后,想想最近要开始从写Java到写Python了,就随手打开电脑来体验一下Python与Java之间的不同吧~ 记得我还在上大二的时候,那个时候才开始学Java,最感兴趣的就是Java书最 ...
 - 【转】在C#中使用SendMessage
			
SendMessage是一个在user32.dll中声明的API函数,在C#中导入如下: using System.Runtime.InteropServices; [DllImport(" ...
 - 浅谈iOS中的userAgent
			
浅谈iOS中的userAgent User-Agent(用户代理)字符串是Web浏览器用于声明自身型号版本并随HTTP请求发送给Web服务器的字符串,在Web服务器上可以获取到该字符串. 在公司产 ...
 - Qt 按钮事件不响应
			
在Qt中,我们设置好按钮的相应事件,连好信号槽,声明什么的也没什问题,但为什么点击按钮就是没有反应,检查了半天终于发现原来是子面板上也有一个相同名称的按钮,一般来说两个面板不为父子关系的时候,分别在不 ...
 - [LintCode] Evaluate Reverse Polish Notation 计算逆波兰表达式
			
Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, ...
 - HTML 表单和验证事件
			
1.表单验证<form></form> (1)非空验证(去空格) (2)对比验证(跟一个值对比) (3)范围验证(根据一个范围进行判断) (4)固定格式验证:电话号码,身份证号 ...
 - c#  集合及特殊集合
			
1.ArrayList集合 习题:输入人数,输入分数,存到集合里面,之后再读取出来,求平均分,排序打印. 2.Stack 集合 3.Queue 队列集合 每日一语:脚跟立定以后,你必须拿你的力量 ...
 - EDI - Biztalk Sample
			
1. EDI Control - Scripting Usage:
 - 未找到arm-linux-gcc解决办法
			
sudo tar jxvf arm-linux-gcc.4.3.3.tar.bz2 export PATH=$PATH:/usr/local/arm/2.95.3/bin #/usr/local/ar ...
 - 【转】手把手教你把Vim改装成一个IDE编程环境(图文)
			
手把手教你把Vim改装成一个IDE编程环境(图文) By: 吴垠 Date: 2007-09-07 Version: 0.5 Email: lazy.fox.wu#gmail.com Homepage ...