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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于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