5.1 查找文件:find命令
Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。find 命令有非常大的灵活性,可以向其指定丰富的搜索条件(如文件权限、属主、属组、文件类型、日期和大小等)来定位系统中的文件和目录。此外,find 还支持对搜索到的结果进行多种类型的命令操作。
find [路径] [选项] [操作];
1.选项:
tips:* 匹配任意字符,?匹配单个字符
$ find /etc -name *init*
在目录/etc中查找文件名包含init
$ find /etc -name init???
在目录/etc中查找文件名init开头并有3个字符的
$ find /etc -name init*
在目录/etc中查找文件名init开头的
- -name 根据文件名查找,文件名区分大小写;若查找以txt为结尾的,用 ' *.txt '
- -iname 根据文件名查找,文件名不区分大小写;
- -user 查找文件所属用户为 zhangsan 的所有文件,例如:find . -user zhangsan
- -group 查找文件所属组为 dev 的所有文件,例如:find . -group dev
-
-type 根据类型查找:如下
f 文件 find . -type f
d 目录 find . -type d
c 字符设备文件 find . -type c
b 块设备文件 find . -type b
l 链接文件 find . -type l
p 管道文件 find . -type p
-
-size 根据文件大小查询
-n 小于 大小为 n 的文件
+n 大于 大小为 n 的文件
举例1:查找 /ect 目录下,小于 10000 字节的文件。 find /etc -size -10000c
举例2:查找 /etc 目录下,大于 1M 的文件。find /etc -size +1M
-
-mtime
-n n 天以内修改的文件。
+n n 天以外修改的文件。
n 正好 n天 修改的文件
举例1: 查询 /etc 目录下,5天以内修改 且以 conf 结尾的文件。 find /etc -mtime -5 -name '*.conf'
举例2: 查询 /etc 目录下,10天之前修改,且属于 yangyang 的文件。 find /etc -mtime +10 -user yangyang
-
-mmin
-n n 分钟以内修改过的文件
+n n 分钟之前修改过的文件
举例1: 查询 /etc 目录下 30分钟 之前修改过的文件。 find /etc -mmin +30
举例1: 查询 /etc 目录下 30分钟 之内修改过的目录。 find /etc -mmin -30 -type d
-
-mindepth n 从第 n 级目录开始搜索
举例:从 /etc 的第三级子目录开始搜索。 find /etc -mindepth 3
-
-maxdepth n 表示至多搜索到第 n-1 级子目录。
举例1: 在 /etc 中搜索符合条件的文件,但最多搜索到 2级 子目录。 find /etc -maxdepth 3 -name '*.conf'
举例2: find /etc -type f -name '*.conf' -size +10k -maxdepthc 2
2.操作查找到的文件
- -print 打印输出。 默认的选项,即打印出找到的结果。
- -exec 对搜索到的文件执行特定的操作,固定的格式为:-exec 'commond' {} \; 注意:{} 表示查询的结果。
举例1: 搜索 /etc 目录下的文件(非目录),文件以 conf 结尾,且大于 10k,然后将其删除。
find /etc -type f -name '*.conf' -size +10k -exec rm -f {} \;
举例2: 将 /data/log/ 目录下以 .log 结尾的文件,且更改时间在 7 天以上的删除。
find /data/log -name '*.log' -mtime +7 -exec rm -f \;
举例3: 搜索条件同 例1 一样,但是不删除,只是将其复制到 /root/conf 目录下
find /etc -type f -name '*.conf' -size +10k -exec cp {} /root/conf/ \;
- -ok 和 -exec 的功能一样,只是每次操作都会给用户提示。
5.2 文件资料库查找:locate命令
locate [文件名];
5.3 查看命令位置:which命令
Linux中 which 命令可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令;
5.4 查看文件位置: whereis命令
whereis指令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。
如果省略参数,则返回所有信息。
和find相比,whereis指令查找的速度非常的快,这是因为linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用whereis指令,会从数据库中查找数据,而不是像find命令那样通过遍历硬盘来查找,效率自然很高。
但是该数据库文件并不是实时更新,默认情况下一星期更新一次,所以有时会找到已经删除的数据或者刚刚建立的文件却无法查找到;
5.5 文本搜索:grep命令
在文件中搜寻字串匹配的行并输出;
grep [指定字串] [路径]
参数:-i:不区分大小写;
-v:排除指定字串;
例:去除以#开头的所有信息,^表示以。。。开头;
标签:文件,命令,目录,etc,查找,搜索,type,find From: https://www.cnblogs.com/hello-205112/p/17703143.html