网上关于介绍find 命名的太多,本文就不多在阐述了.
给出链接:
在这篇博文介绍了 xargs结合find使用
部分资料:
find命令可以把匹配到的文件传递给 xargs 命令执行,在使用 find 命令的 -exec 选项处理匹配到的文件时,find将所有匹配到的文件一起传递给 exec 执行。由于有些系统对能够传递给 exec 的命令长度有限制,这样会引起溢出错误。这时可以使用 xargs 命令。
find . -type f -name "*.log" -print0 | xargs -0 rm -f #xargs -0将\0作为定界符
find . -type f -name "*.php" -print0 | xargs -0 wc -l #统计一个源代码目录中所有php文件的行数
find . -type f -name "*.jpg" -print | xargs tar -czvf images.tar.gz #查找所有的jpg 文件,并且压缩它们
find / type f -print | xargs file 查找系统中的每一个普通文件,并用 file 命令来测试它们分别属于哪一类文件。
find . -type f -name "\.log" -print | xargs rm 查找当前目录下的 .log 文件,并删除 。
find . -type f -exec ls -l {} \; 用 ls -l 列出所有匹配到的文件。
find logs -type f -mtime +5 -exec rm {} \; 查找 log 中更改时间在 5 天前的文件并删除。
find logs -type f -ok rm {} \; 查找 log中的所有普通文件并在删除前确认。
find . -type f -name "\.log" -print | gerp "node" 查找当前目录下的 .log 文件,并从查找结果中筛选出带有 node 字符串的文件
而 对于相对简单的应用,比如说 查找文件以及文件夹 就可以使用:
基本上使用大概就是:
查找目录:find /(查找范围) -name '查找关键字' -type d
查找文件:find /(查找范围) -name 查找关键字 -type f -print
还有就是,find 支持 -regex
例如在 当前目录查找 .c .h 文件
find . -regex ".*\(\.c\|\.h\)$"
那么在你的终端上,将以每一行展示 一个查找到的.c 或是.h 文件.
要是,我现在 有个需求,就是将 查找到的.c 或是.h 文件 全部合并,应该怎么做呢?
find . -regex ".*\(\.c\|\.h\)$" |xargs cat >> out.txt(输出文件名)