find 命令只查找当前目录,不查找子目录的几种方法总结

在应用中利用find命令时,目录下面有多个子目录,要求只查找当前目录下的文件,不查找子目录下的相关文件。经过man和网上资料的查找,现做总结,以备后续查找。

方法1

-maxdepth 1  表示最大目录层数,为1则表示在当前目录下查找
find  .  -maxdepth 1  -name  *.conf    #####表示只在当前目录下(不包含当前目录下的 子目录)查找以.conf  为后缀的所有文件。

方法2

-prune   加上 -type  d  就是把当前目录下的所有类型为目录的文件全部排除掉
 find . ! -name "." -type d -prune -o -name '*.tar'      ####在当前目录下查找以.tar为后缀的所有文件。

以上命令本人均测试都成功,不存在任何问题。需要注意的是都要进入要查找的目录中,然后对其进行查找。

使用  -prune 时还需注意后面要加 -o 然后加查找条件,要查找的文件名还必须用单引号括起来('*.tar'),不然执行find命令会报错如下错误
find: paths must precede expression: yanf.tar
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值