find命令使用详解

有时候管理系统的时候,需要查找文件,这时候find命令我相信会是大多数人需要使用到的命令。下面我们就find命令的常用参数和选项进行学习下。(find命令其实挺耗资源的,用的时候小心点)

格式

find  [path] -option [-print -exec  -ok ]

path:在哪个路径下进行搜索文件

option选项:

-name:按照名称进行查找,后跟你需要查找的字符串

-size:按照大小进行查找,后跟文件大小,-2M(小于2M)+2m(大于2M)

-perm:按照权限进行查找,后跟权限,比如755等

-type:按照类型来进行查找,后跟

f:普通文件类型

d:目录类型

b:块设备

l:符号链接

c:字符设备

p:管道文件

-depth:查找时,首先在当前目录下查找,然后再到其子目录中查找

-fstype:查找位于某一文件系统文件,

-mount:查找文件是不跨越文件系统mount挂载点

-follow:当查到有符号链接文件时,跟踪至链接所指的文件

-cpio:对匹配到的文件使用cpio命令,备份到存储磁带中

-prune:过滤掉不想要进行搜索的目录,如果同时使用了-depth选项,那么-prune选项将被find命令忽略。

-user ,-nouser,-group,-nogroup查找属于/不属于某个用户/组的

-mtime -n +n 按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n

表示文件更改时间距现在n天以前。find命令还有-atime和-ctime选项,但它们都和-mtime选项

相似,所以我们在这里只介绍-mtime选项。

-newer file1 ! -newer file2 查找更改时间比文件file1新但比文件file2旧的文件。

-print find命令将匹配的文件输出到标准输出。

-exec find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为‘command‘ {} \;,注意{ }和\;之间的空格。

-ok 和- e x e c的作用相同,只不过以一种更为安全的模式来执行该参数所给出的s h e l l命令,

在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

在使用find命令的-exec选项处理匹配到的文件时,find命令将所有匹配到的文件一起传递

给exec执行。不幸的是,有些系统对能够传递给exec的命令长度有限制,这样在find命令运行

几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是

xargs命令的用处所在,特别是与find命令一起使用。Find命令把匹配到的文件传递给xargs命

令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理

最先获取的一部分文件,然后是下一批,并如此继续下去。在有些系统中,使用-exec选项会

为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次

执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;而使用

xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分

批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参

数来确定。

下面的例子在/apps/audit目录下查找所有用户具有读、写和执行权限的文件,并收回相应

的写权限:

$ find /apps/audit -perm -777 -print | xargs chmod g,o-w

时间: 2024-10-14 07:45:59

find命令使用详解的相关文章

Pip 命令使用详解

Pip 命令使用详解 2015-01-06 21:44 3033人阅读 评论(0) 收藏 举报  分类: debian(3)  redis(1)  python 1.pip下载安装1.1 pip下载 1 # wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate 1.2 pip安装 1

linux wget 命令用法详解(附实例说明)

Linux wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器.如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器.这样既浪费时间又浪费精力,那不没办法的事.而到了Linux VPS,它则可以直接下载到服务器而不用经过上传这一步.wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来

linux nc命令使用详解(转)

linux nc命令使用详解 功能说明:功能强大的网络工具 语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...] 参 数: -g<网关> 设置路由器跃程通信网关,最丢哦可设置8个. -G<指向器数目> 设置来源路由指向器,其数值为4的

【转】 wget 命令用法详解

wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能和特点:(1)支持断点下传功能:这一点,也是网络蚂蚁和FlashGet当年最大的卖点,现在,Wget也可以使用此功能,那些网络不是太好的用户可以放心了:(2)同时支持FTP和HTTP下载方式:尽管现在大部分软件可以使用HTTP方式下载,但是,有些时候,仍然需要使用FTP方式下载软件:(3)支持代理服务器:对安全强度很高的系统而言,一般不会将自己的系统直接暴

Mysql导入导出工具Mysqldump和Source命令用法详解

mysqldump -u 用户名 -p [--opt] DATABASENAME [Table] >导出SQL文件名 例子: mysqldump -h host -u user -p --opt databasename [table] > /home/user/databasename.sql 使用Mysqldump导出数据表结构 mysqldump -u root -p --no-data mysql user >D:\PHPWeb\sqlbackup\mysql_user.sql

揭秘SFTP&&SCP命令 Linux详解

很多童鞋对于如果在字符终端进行上传下载以及复制的命令不熟悉,那么下面我就来说一下如何通过sftp以及scp命令进行上传下载以及复制文件的操作. 先来看一下sftp命令: 举例说明:现在我有两台虚拟机,分别是192.168.1.118和192.168.1.121,假设121的主机是远程服务器,且服务器上有一个user2的用户.此时,你想将118上的/etc/passwd文件上传到user2的主目录下,并将user2的.bashrc文件复制到118主机的/tmp目录下. 上传命令是put,下载命令是

[转载]JAVA 命令参数详解:-D

原文链接:http://blog.sina.com.cn/s/blog_605f5b4f0100hlt9.html JAVA 命令参数详解: 1.-D<name>=<value> set a system property  设置系统属性. java -D参数简化加入多个jar java命令引入jar时可以-cp参数,但时-cp不能用通配符(多个jar时什么烦要一个个写,不能*.jar),面通常的jar都在同一目录,且多于1个.前些日子找到(发现)-Djava.ext.dirs太好

JAVA 命令参数详解System.setProperty(

JAVA 命令参数详解: 1.-D<name>=<value> set a system property  设置系统属性. java -D参数简化加入多个jar java命令引入jar时可以-cp参数,但时-cp不能用通配符(多个jar时什么烦要一个个写,不能*.jar),面通常的jar都在同一目录,且多于1个.前些日子找到(发现)-Djava.ext.dirs太好. 如: java -Djava.ext.dirs=lib MyClass 可以在运行前配置一些属性,比如路径什么的

批处理中的echo命令图文详解

批处理中的echo命令图文详解 1. Echo 显示当前ECHO的状态:ECHO ON 或者ECHO OFF 2. ECHO ON 将ECHO状态设置为ON,将显示命令行,也就是前面的C:\>类似的标志,如图所示: 3. ECHO OFF 将ECHO状态设置为OFF,将不显示命令行,也就是前面的C:\>类似的标志,其他功能一样,用户也可以输入命令,也可以显示命令结果,如图所示: 4. ECHO 字符串 将输入的字符串显示在CMD屏幕上.如图所示 5. ECHO 字符串 &ECHO 字符

[转]Mysql导入导出工具Mysqldump和Source命令用法详解

Mysql本身提供了命令行导出工具Mysqldump和Mysql Source导入命令进行SQL数据导入导出工作,通过Mysql命令行导出工具Mysqldump命令能够将Mysql数据导出为文本格式(txt)的SQL文件,通过Mysql Source命令能够将SQL文件导入Mysql数据库中,下面通过Mysql导入导出SQL实例详解Mysqldump和Source命令的用法. 在PHP网站开发中,时常遇到Mysql数据库备份或数据库迁移工作,这时Mysql怎么导入导出数据库中的数据就非常关键,M