Linux命令--find

find是命令行工具箱中最棒的命令之一。

 

列出当前目录及其子目录中的文件和文件夹。

复制代码
[root@LAMP WebRoot]# find . -print
.
./index.jsp
./upload.jsp
./listfile.jsp
./update.jsp
./WEB-INF
./WEB-INF/classes
./WEB-INF/classes/DownLoadServlet.class
./WEB-INF/classes/ListFileServlet.class
./WEB-INF/lib
./WEB-INF/lib/commons-fileupload-1.3.1.jar
./WEB-INF/lib/commons-io-2.4.jar
./WEB-INF/web.xml

复制代码

-print,用\n对文件名进行分隔,另外它也可以省略,因为它已经是默认的了,需要注意的是文件名中含有换行符时,应该使用-print0,它使用\0作为文件名间的分隔。

[root@LAMP WebRoot]# find . -print0
../index.jsp./upload.jsp./listfile.jsp./update.jsp./WEB-INF./WEB-INF/classes./WEB-INF/classes/DownLoadServlet.class./WEB-INF/classes/ListFileServlet.class./WEB-INF/lib./WEB-INF/lib/commons-fileupload-1.3.1.jar./WEB-INF/lib/commons-io-2.4.jar./WEB-INF/web.xml[root@LAMP WebRoot]# 

 

根据文件名或正则表达式进行搜索。

-name

[root@LAMP WebRoot]# find -name DownLoadServlet.class
./WEB-INF/classes/DownLoadServlet.class

-iname,忽略大小写

[root@LAMP WebRoot]# find -iname downLoadServlet.class
./WEB-INF/classes/DownLoadServlet.class

匹配多个条件中的一个

[root@LAMP WebRoot]# find . \( -name "*.class" -o -name "*.jar" \)
./WEB-INF/classes/DownLoadServlet.class
./WEB-INF/classes/ListFileServlet.class
./WEB-INF/lib/commons-fileupload-1.3.1.jar
./WEB-INF/lib/commons-io-2.4.jar

     注意中()间的空格。

 找出当前目录下名为database的目录

[root@www src]# find . -type d -name database
./database

 find 和xargs的结合

  find找出的文件是以回车换行的,而xargs却是空白字符 (空格, TAB, 换行符) 来分割记录的,所以应该使用相同的分割符,这里都用null

find /wls/webapps -name ".svn" -print0|xargs -0 rm -rf

 

posted @   头痛不头痛  阅读(534)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
历史上的今天:
2015-08-23 64位Oracle 11g 使用PL/SQL
点击右上角即可分享
微信分享提示
主题色彩