面试官都在问 | 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的文件

面试官都在问 | Linux命令之find_查找文件

以上就是我们在面试中被问到,如何使用find命令查找文件时,老铁们的回答的参考喽!大家可以使用自己的Linux机器自行练习哦