find命令的使用及错误信息过滤

  在需要查找文件或者文件夹时,find命令总能派上用场。Linux find命令用于在指定的目录下查找文件,不仅可以按照文件名进行文件搜索,还可以根据设置的参数按照文件大小,时间等来搜索文件,并将查找的结果在终端进行显示。其基本语法如下:

find [path] [-option]  [-exec   -ok  command]

  find的参数很多,常用参数如下:

参数 描述
-name 按文件名查找
-size 按文件大小查找
-user 按文件属主查找
-type 按文件类型查找

  同时find命令还可以逻辑运算符not、and、or 一起使用以组成的复合条件进行文件查找。逻辑运算符and、or、not的含义为:

逻辑运算符 描述
and 逻辑与,在命令中用 -a 表示,是系统缺省的选项,表示只有当所给的条 件都满足时,寻找条件才算满足;
or 逻辑或,在命令中用 -o 表示。该运算符表示只要所给的条件中有一个满足 时,寻找条件就算满足;
not 逻辑非,在命令中用 ! 表示。该运算符表示查找不满足所给条件的文件 ;

  这里我们只介绍一下基本语法和常用参数,主要来讲讲如何过滤使用find命令时大量的错误信息输出。有时候我们在使用find命令查找文件时可能会因为权限等问题导致出错,如此在终端就会打印出相关错误信息,如下:
在这里插入图片描述
  有办法只显示找到的内容吗?试试下面的命令吧

find / -name hello_world* 2>/dev/null

在这里插入图片描述使用  使用find命令的时在命令后加 2>/dev/null 将错误结果输出重定向/dev/null中,/dev/null 是一个特殊的设备文件,其实质为空设备文件,查看该文件的详情可知其还是个character special file,其大小是0字节,所有人都有读写权限,而他的主要作用的话就是接收一切输入给它的数据并丢弃,就像垃圾桶,的确它也通常被当作垃圾桶来使用,也被称为位桶(bit bucket)。
在这里插入图片描述
  了解了/dev/null文件之后,我们来看看上述的“2”代表什么?Linux中有三个特殊的文件描述符,它们就是0,1,2。

描述符 info
0 标准输入(stdin)
1 标准输出(stdout)
2 标准错误(stderr)

  综上,如此一来,所有的错误信息就会被丢弃到位桶中,过滤掉错误的输出内容。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_33475105/article/details/124534522