目录
查找命令:"find dir [option] 内容"
- -name 按照名字查找:find ./ -name "*.c"
- -type 按照类型查找
对应的大部分查找的文件类型如下:
- -size 按照大小查找:"find ./ -size +1M -size -5M", (代表查找大于1M,并且小于5M的文件),如果不写+-,代表等于
- -maxdepth 最深路径:"find ./ -maxdepth 1 -size +1M " ,(代表只查找当前路径下的大于1M的文件)
这个命令是上条命令的补充,可以规定查找的目录路径范围
- find ./ -maxdepth 2 -size +1M -exec ls -l {} \;
想显示更详细的信息
- find ./ -maxdepth 2 -size +1M -exec rm -rf {} \;
想查找到之后,直接删除;经过对比发现,其实和上一条命令相比,就是把后面的部分给换了一下而已。
- -ok 相对安全模式,每一条指令都提示
"find ./ -maxdepth 2 -size +1M -ok ls -l {} \; "
"find ./ -maxdepth 2 -size +1M -ok rm -rf {} \; "
其实,"-ok"和"-exec"的功能都差不多,只不过前者是安全模式,会对每一次操作都进行询问
进行分块:"xargs"命令
xargs命令将find命令查找的结果分成若干块输出给后面的指令:"find ./ -type l|xargs ls -l"
xargs是find命令的好伴侣,而且,很多企业面试都爱考。这是因为find命令存在弊端,就是当find所查找的命令特别多的时候,"exec"的指令,是一下子把所有结果都传给了后面的指令,如果所找到的指令特别多的话,会造成后面的指令在执行的时候溢出,而使用xargs指令的时候,会把找到的结果分成若干个块,再按块传给后面的指令,可以避免溢出。
对内容进行过滤:"grep"命令
一般与find命令结合起来使用,用find来查找,用grep来进行过滤。比如,来对包含c的文件进行过滤,找到了进行了标红:
- grep [option] 内容 dir|filename
就可以直接去查找文件中的特定内容
- -r 递归子目录
- -n 显示行号
- find与grep结合起来使用:"find ./ -type f|grep txt "
- 查找指定文件内是否有main:"cat ggeqG.c |grep main"
- 分析日志:"tail -f tcpsvr.1705 |grep connect"