linux find命令强大之处

find命令

find pathname -options [-print -exec -ok ...]

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

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

-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

例子:

$ find /etc -name "host*" -print 在/etc目录中查找文件名以host开头的文件;

$find . -name "[a-z][a-z][0--9][0--9].txt" -print 在当前目录查找文件名以两个小写字母开头,跟着是两个数字,最后是.txt的文件;

另外find是分大小写的,如果不想分大小写,可用-iname替换-name.

-type f,表示只找file,文件类型的,目录和其他字节啥的不要

find ./ -type f -exec grep iceskysl {} /dev/null \;

适用于正则查找,也适用于内容查找:

查找目录下的所有文件中是否含有某个字符串 ,xargs表示把后面的结果作为前面命令的参数:

find .|xargs grep -ri "IBM" 相当于grep –ri “IBM” ./

查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名

find .|xargs grep -ri "IBM" -l 相当于grep –ril “IBM” ./

-exec作为find命令的参数,使用{}替换find的结果,末尾要加\;作为-exec命令的终结符:

复制目录下所有的.py文件:

find ./ -name *.py -exec cp {} /tmp/ \;

find ./ -name "*.txt" -exec grep "bin" {} \;

find ./ -name "*.txt" -exec rm {} \;

shell的内建命令exec将并不启动新的shell,而是用要被执行命令替换当前的shell进程,并且将老进程的环境清理掉,而且exec命令后的其它命令将不再执行。

当然,find ... | xargs rm -rf   也有一样的作用。

find可以有逻辑运算,特别是取非:

find ./ ! -name "extract*"          #找出文件夹下所有不以extract开始的文件

find ./ -name "*.py" -o -name "*.sh"         # or的缩写,找出文件夹下所有以py或者sh为后缀的文件

find ./ -name "*.java" -a -size +100k -mmin -10    #查找当前目录下(递归子目录)的所有名为*.java并且修改时间在10分钟之内的文件,-a是默认选项

find ./ ! -name "*.py" -o -name "*.sh"         # 找出文件夹下所有不是以(py或者sh)为后缀的文件

find ./ ! -name "*.py" -exec rm {} \;          #删除文件夹下所有不是以.py结尾的文件

linux find命令强大之处,布布扣,bubuko.com

时间: 2024-12-25 18:23:30

linux find命令强大之处的相关文章

Linux基础命令(5)

二十四 date 命令简介在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便.1.命令格式:  date [参数]... [+格式]2.命令功能:date 可以用来显示或设定系统的日期与时间.3.命令参数:3.1必要参数:%H 小时(以00-23来表示). %I 小时(以01-12来表示). %K 小时(以0-23来表示). %l 小时(以0-12来表示). %M 分钟(以00-59

Linux进阶命令

0x00 Linux进阶命令 当我们熟悉一定的基础命令时,我们往往会接触到一些高级的命令操作,或者说是陌生的命令操作. 0x01 程序构建 一般源代码提供的程序安装需要通过配置.编译.安装三个步骤: 配置: ①要安装软件的依赖关系 ②设置程序安装所需要的初始化信息,比如安装路径,需要安装哪些组件 ③配置完成,会生成makefile文件供第二步make使用 编译:是对源文件进行编译链接生成可执行程序: 安装:做的工作就简单多了,就是将生成的可执行文件拷贝到配置时设置的初始路径下: 1.1. 配置

转载:linux vi命令详解

转自:http://www.cnblogs.com/mahang/archive/2011/09/01/2161672.html 刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇. vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指 令.由于 对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它.Vi也是Linux中最基本的文本编 辑器,学会它

Linux shell命令中expr

在Linux shell命令中expr虽然不是很起眼,但是它的作用是非常大的!到目前为止,我个人看来最大的作用就是两个——四则运算和字符串的操作. 先说四则运算,在Shell中四则运算不能简简单单的加减乘除,应该要写如下的格式: $val1=`$val2 - 1` 其中“=”后面用“`”包住表达式,这个符号在Shell中十分有用,是Tab键上面“~”的原来形式.可以用来将很多命令的结果保存到一个变量中去.接着就是运算符了,运算符的左右两边必须是空格,否则会出错. 接着是强大的字符串操作: 提取指

Linux 入门命令

本文系转载:http://www.cnblogs.com/wwj9413/archive/2012/03/15/2638638.html#2929949 1.Linux进入与退出系统 进入Linux系统: 必须要输入用户的账号,在系统安装过程中可以创建以下两种帐号: 1.root--超级用户帐号(系统管理员),使用这个帐号可以在系统中做任何事情. 2.普通用户--这个帐号供普通用户使用,可以进行有限的操作. 一般的Linux使用者均为普通用户,而系统管理员一般使用超级用户帐号完成一些系统管理的工

Linux命令大全之二——Linux系统设置命令,非常全!

继上次汇总的Linux命令大全之一(Linux系统管理命令),这次给大家分享的Linux系统设置命令. 这些都是日常常用的命令,对想学习Linux的伙伴们来说可谓是大大滴福利,全是干货~~ alias 功能说明:设置指令的别名. 语 法:alias[别名]=[指令名称] 补充说明:用户可利用alias,自定指令的别名.若仅输入alias,则可列出目前所有的别名设置.alias的效力仅及于该次登入的操作.若要每次登入是即自动设好别名,可在.profile或.cshrc中设定指令的别名. 参 数:若

Linux部分命令的总结(二)

1.Linux touch命令:创建文件及修改文件时间戳 touch 命令不光可以用来创建文件(当指定操作文件不存在时,该命令会在当前位置建立一个空文件),此命令更重要的功能是修改文件的时间参数(但当文件存在时,会修改此文件的时间参数). Linux 系统中,每个文件主要拥有 3 个时间参数(通过 stat 命令进行查看),分别是文件的访问时间.数据修改时间以及状态修改时间: 访问时间(Access Time,简称 atime):只要文件的内容被读取,访问时间就会更新.例如,使用 cat 命令可

Linux常用命令学习

补充: 管道符号:   | 含义: 命令1 的正确输出作为命令2的输出对象. 格式: 命令1   |  命令2 举例: ls -ctrl |  more 常用命令: netstat   -an    |  grep    ESTABLISHED         查看正在连接的端口 netstat   -an    |   grep   LISTEN find   .    -name   test.txt    |     cat    -n          在当前目录下找到文件名为test.

linux vi 命令大全

linux vi 命令大全 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次进行编辑