linux寻找某目录下包含指定内容的文件

find 和 grep 相结合,find命令中的参数可以实现这样的功能。

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

-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,

find .|xargs grep x
find . -exec grep x{} \;

其中  find . -exec grep x {} \; 或者 find .|xargs grep x 命令 都能实现在当前目录下查找包含指定字符串的文件

xargs - build and execute command lines from standard input

在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。


即这两个命令无所谓带区别,推荐使用第二种方式。


另发现grep带参数可以直接实现此功能:


grep -r Clock * 查找当前目录下的所有文件中包含Clock字符串的文件,查找子目录
grep -nr Clock * 查找当前目录下的所有文件中包含Clock字符串的文件,查找子目录,并显示行号

grep Clock * 查找当前目录下的所有文件中包含Clock字符串的文件,不查找子目录

其他的find命令有如下:

find -name Help.java 在当前目录及其子目录中搜索文件名为Help.java的文件。
find . -name Help.java 在当前目录及其子目录中搜索文件名为Help.java的文件(同上)。
find / -name Help.java 在整个硬盘中搜索文件名为Help.java的文件。
find -perm 755 在当前目录及其子目录中查找指定权限的文件
find -type b 在当前目录及其子目录下查找块设备文件。
find -type d 在当前目录及其子目录下查文件夹。
find -type c 在当前目录及其子目录下查找字符设备文件。
find -type p 在当前目录及其子目录下查找管道文件。
find -type l 在当前目录及其子目录下查找符号链接文件。
find -type f 在当前目录及其子目录下查找普通文件。
find -type d -exec ls -l {} \; 查找当前目录及其子目录下的文件夹,并将查找结果以ls -l的方式展现。
find -type d -ok rm -rf {} \;查找当前目录及其子目录下的文件夹,并将查找结果依次执行rm -rf命令,但是在执行命令前会有

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值