在应用中利用find命令时,目录下面有多个子目录,要求只查找当前目录下的文件,不查找子目录下的相关文件。经过man和网上资料的查找,现做总结,以备后续查找。
-maxdepth 1 表示最大目录层数,为1则表示在当前目录下查找
find . -maxdepth 1 -name *.conf #####表示只在当前目录下(不包含当前目录下的 子目录)查找以.conf 为后缀的所有文件
-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]
阅读(11390) | 评论(0) | 转发(0) |