find命令的prune用法总结

2020-05-21  本文已影响0人  wubin1989

最近因为服务器运维的需要在学习linux脚本编程,接触到find命令,看了一些课程和文章,但是总感觉还是没有讲明白prune。
简单来说,prune的功能就是当遇到某个文件夹的时候,跳过这个文件夹,不进去继续查找。我们下面看例子说。

➜  findExample tree .
.
├── folder1
├── folder2
│   ├── sub1
│   │   └── file1
│   └── sub2
│       └── file2
└── folder3
    └── file3

5 directories, 3 files

这是用来做说明的文件夹结构。如果我们想查找除了folder3这个文件夹之外的其他文件夹里的文件,可以用这样的命令实现:

➜  findExample find . -path ./folder3 -prune -o -type f -print
./folder2/sub1/file1
./folder2/sub2/file2

find后面的第一个英文点号.表示当前根路径,-path ./folder3表示匹配路径为./folder3的文件夹,-prune表示把前面命令所匹配到的路径排除,不再进入该路径下面继续查找,-o表示或,-type f表示查找文件,-print表示打印查找结果到命令行终端。
有几个需要注意的点:

➜  findExample find . -path folder3 -prune -o -type f -print  
./folder2/sub1/file1
./folder2/sub2/file2
./folder3/file3

这样是错误的。把-path改成-name就对了。

➜  findExample find . -name folder3 -prune -o -type f -print
./folder2/sub1/file1
./folder2/sub2/file2

find命令是linux系统里很常用的一个命令,可以通过man find命令查看其他参数和用法。有疑问,可以一起探讨。

上一篇下一篇

猜你喜欢

热点阅读