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

来源:互联网 发布:jenkins windows 部署 编辑:程序博客网 时间:2024/05/18 10:46

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命令,但是在执行命令前会有

原创粉丝点击