查询文件命令
locate
- 格式:locate 文件(夹)
- 优点:快(相当于目录寻找)
- 缺点:不全,会列出所有包含内容的文件,新建的搜不到(需刷新updatedb)
which
- 只能用于搜索命令位置
- $PATH(命令文件)
- echo $PATH(列出所有命令文件所在的文件夹)
- which 命令=whereis(更详细)
find
- 缺点:慢(相比较而言,需搜索全磁盘)
- 优点:实时查找,可以附加众多条件
- 格式:find 范围 [选项] 条件 处理动作
- 范围:指定具体目标路径;不指定为默认为当前目录
- 条件:可以对文件名、大小、类型、权限等标准进行查找;默认为找出指定路径下的所有文件
- 处理动作:对符合条件的文件做操作,默认输出至屏幕(print)
[选项]
查找类型 | 关键字 | 说明 |
---|---|---|
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“*”及“?”通配符 -iname "文件名称" 不区分大小写 |
按文件大小查找 | -size | 根据目标文件的大小进行查找一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件常用的容量单位包括 kB(注意 k 是小写)、MB、GB |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等 |
按inode号 | -inum | 根据文件inode号查找 |
按权限查找 | -perm | 按文件权限查找 |
最大搜索目录深度 | -maxdepth level | 将你的文件已分级的形式查找 |
最小搜索目录深度 | -mindepth level | 同上 find /etc -maxdepth 2 -mindepth 2 |
根据时间
#以“天”为单位
-atime [+|-]#
# #表示[#,#+1) 如#是3 3 到 4天
+# #表示[#+1,∞] 如#是3 代表 4天以上
-# #表示[0,#) 如#是3 3天以内
-mtime
-ctime
-atime
#以“分钟”为单位
-amin
-mmin
-cmin
处理动作
-print:默认的处理动作,显示至屏幕
-ls:类似于对查找到的文件执行"ls -dils"命令格式输出
-fls file:查找到的所有文件的长格式信息保存至指定文件中,相当于 -ls > file
-delete:删除查找到的文件,慎用!
-ok COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认
-exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令
{}: 用于引用查找到的文件名称自身
例:
1.找到/root/best/下的软链接并删除
[root@localhost ~]# ll /root/best
总用量 8
lrwxrwxrwx 1 root root 17 3月 11 18:26 a -> /proc/self/mounts
lrwxrwxrwx 1 root root 17 3月 28 19:08 i -> /proc/self/mounts
-rw-r--r--. 1 root root 357 3月 11 18:51 ifcfg-ens33
lrwxrwxrwx 1 root root 17 3月 11 18:26 p -> /proc/self/mounts
-rw-r--r--. 1 root root 52 3月 11 12:17 yum
[root@localhost ~]# find /root/best/ -type l -delete
[root@localhost ~]# ll /root/best
总用量 8
-rw-r--r--. 1 root root 357 3月 11 18:51 ifcfg-ens33
-rw-r--r--. 1 root root 52 3月 11 12:17 yum
2.找到/root/best/下的普通文件并移动到/mnt/下
[root@localhost ~]# ll /root/best
总用量 8
-rw-r--r--. 1 root root 357 3月 11 18:51 ifcfg-ens33
-rw-r--r--. 1 root root 52 3月 11 12:17 yum
[root@localhost ~]# find /root/best/ -type f -exec mv {} /mnt \;
[root@localhost ~]# ll /root/best
总用量 0
[root@localhost ~]# ll /mnt
总用量 8
-rw-r--r--. 1 root root 357 3月 11 18:51 ifcfg-ens33
-rw-r--r--. 1 root root 52 3月 11 12:17 yum