面试官都在问 | 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]
命令
find [path] -name [filename]
[Ann@localhost findtest]$ find ~ -name Linux
/home/Ann/work/findtest/Linux
find
:find命令使用之起手式:
-
:在当前用户的家目录下进行搜索,也可以传入不同的目录~
-
:find命令之-name命令行参数-name
-
:带查找的文件名称Linux
-
:查找到在当前Ann用户家目录下存在的Linux文件/home/Ann/work/findtest/Linux
1.4 find [path] -iname [filename]
命令
find [path] -iname [filename]
[Ann@localhost findtest]$ find ~ -iname linux
/home/Ann/work/findtest/Linux
/home/Ann/work/findtest/linux
-
:find命令之-iname
命令行参数,-iname
在使用的时候,对大小写不敏感,所以我们使用find命令的时候就搜出出来一下两个文件iname
-
:‘L’字符大写的Linux文件/home/Ann/work/findtest/Linux
-
:‘l’字符小写的linux文件/home/Ann/work/findtest/linux
1.5 find [path] -empty
命令
find [path] -empty
查找当前目录下的空文件
[Ann@localhost findtest]$ find . -empty
./linux
-
:当前目录.
-
:find命令之-empty
命令行参数,使用该命令会罗列出指定目录以及子目录下的所有的空文件-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--
代表文件权限,该文件权限为对于当前Ann用户而言可读可写不可执行,对于Ann用户组而言可读可写不可执行,对于其他用户而言可读不可写不可执行“rw-rw-r--”
-
:文件链接数1
-
:文件所属用户Ann
-
:文件所属用户组Ann
-
:文件大小,单位字节0或者21
-
:文件创建时间Apr 10 23:11
-
:文件名称linux或者Linux
1.6 find [path] -size [filesize]
命令
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 总结
-
:在path目录下查找文件名成为filename的文件,大小写敏感find [path] -name [filename]
-
:在path目录下查找文件名成为filename的文件,大小写不敏感find [path] -iname [filename]
-
:在path目录下查找文件大小为空的文件find [path] -empty
-
: 查找定长的文件find [path] -size [fileszie]
-
:查找大于filesize的文件find [path] -size +[filesize]
-
:查找小于filesize的文件find [path] -size -[filesize]
-
:查找大于filesize1的文件并且小于filesize2的文件find [path] -size +[filesize1] -size -[filesize2]