天天看点

面试官都在问 | Linux命令之find

面试官都在问 | Linux命令之find

0. 概述

在我们面试各大公司的时候,关于Linux往往最容易问到的问题之一就是Linux指令,而其中,能够使用命令快速的查找的文件已经成为了使用Linux系统的必备技能了,所以,面试官往往通过对于该命令的考察,获取应聘者对Linux环境是否熟悉。我们结合海量面经,提取出最容易被问到的Linux当中查找文件的命令以及命令行参数,供大家参考

  • 如何在指定的目录下查找文件
  • find命令的常用命令行参数都有哪些

1.Linux命令之find

1.1.简述

​find​

​​命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则​

​find​

​命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示

1.2 高频选项
-name filename : 文件名称符合 filename 的文件 , 大小写敏感
-iname filname : 文件名称符合 name 的文件,忽略大小写
-empty : 空文件
-size:指定文件大小      
1.3 ​

​find [path] -name [filename]​

​ 命令
[Ann@localhost findtest]$ find ~ -name Linux 
/home/Ann/work/findtest/Linux      

​find​

​:find命令使用之起手式:

  • ​~​

    ​:在当前用户的家目录下进行搜索,也可以传入不同的目录
  • ​-name​

    ​:find命令之-name命令行参数
  • ​Linux​

    ​:带查找的文件名称
  • ​/home/Ann/work/findtest/Linux​

    ​:查找到在当前Ann用户家目录下存在的Linux文件
1.4 ​

​find [path] -iname [filename]​

​ 命令
[Ann@localhost findtest]$ find ~ -iname linux
/home/Ann/work/findtest/Linux
/home/Ann/work/findtest/linux      
  • ​-iname​

    ​​:find命令之​

    ​-iname​

    ​命令行参数,​

    ​iname​

    ​在使用的时候,对大小写不敏感,所以我们使用find命令的时候就搜出出来一下两个文件
  • ​/home/Ann/work/findtest/Linux​

    ​:‘L’字符大写的Linux文件
  • ​/home/Ann/work/findtest/linux​

    ​:‘l’字符小写的linux文件
1.5 ​

​find [path] -empty​

​命令

查找当前目录下的空文件

[Ann@localhost findtest]$ find . -empty 
./linux      
  • ​.​

    ​ :当前目录
  • ​-empty​

    ​​:find命令之​

    ​-empty​

    ​命令行参数,使用该命令会罗列出指定目录以及子目录下的所有的空文件

为了更好的使用​

​find​

​​命令,我们需要在了解一下​

​ls or ll​

​命令。

​ll​

​:ls -l命令的缩写,查看当前目录下文件或者文件夹的属性

[Ann@localhost findtest]$ ll
total 4
-rw-rw-r--. 1 Ann Ann  0 Apr 10 23:11 linux
-rw-rw-r--. 1 Ann Ann 21 Apr 10 23:12 Linux      
  • ​-rw-rw-r--​

    ​​:第一个’-'代表普通文件, 后面​

    ​“rw-rw-r--”​

    ​代表文件权限,该文件权限为对于当前Ann用户而言可读可写不可执行,对于Ann用户组而言可读可写不可执行,对于其他用户而言可读不可写不可执行
  • ​1​

    ​ :文件链接数
  • ​Ann​

    ​:文件所属用户
  • ​Ann​

    ​:文件所属用户组
  • ​0或者21​

    ​:文件大小,单位字节
  • ​Apr 10 23:11​

    ​:文件创建时间
  • ​linux或者Linux​

    ​:文件名称
1.6 ​

​find [path] -size [filesize]​

​命令

1.6.1 find之查找指定文件大小

​find [path] -size [fileszie]​

​ : 查找定长的文件

[Ann@localhost testfind]$ find . -size 5k
./findtest
[Ann@localhost testfind]$ ll
-rw-rw-r--. 1 wudu wudu 5060 Apr 14 23:51 findtest      

-size 5k:查找文件大小为5k的文件

1.6.2 find之查找区间文件大小

​find [path] -size +[filesize1] -[filesize2]​

​ :查找大于filesize1的文件并且小于filesize2的文件

[Ann@localhost testfind]$ find . -size +2k -size -6k
./findtest
[Ann@localhost testfind]$ ll
-rw-rw-r--. 1 Ann Ann 5060 Apr 14 23:51 findtest      

​-size +2k​

​​:文件大小大于2k,​

​+​

​ 代表大于

​-size -6k​

​​:文件大小小于6k,​

​-​

​ 代表小于

合起来就是查找大于2k而小于6k的文件

1.7 总结
  • ​find [path] -name [filename]​

    ​:在path目录下查找文件名成为filename的文件,大小写敏感
  • ​find [path] -iname [filename]​

    ​:在path目录下查找文件名成为filename的文件,大小写不敏感
  • ​find [path] -empty​

    ​:在path目录下查找文件大小为空的文件
  • ​find [path] -size [fileszie]​

    ​ : 查找定长的文件
  • ​find [path] -size +[filesize]​

    ​:查找大于filesize的文件
  • ​find [path] -size -[filesize]​

    ​ :查找小于filesize的文件
  • ​find [path] -size +[filesize1] -size -[filesize2]​

    ​ :查找大于filesize1的文件并且小于filesize2的文件