目录操作
查找文件
locate
-
ocate 查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db
-
索引的构建是在系统较为空闲时自动进行(周期性任务),执行updatedb可以更新数据库
-
索引构建过程需要遍历整个根文件系统,很消耗资源
-
locate和updatedb命令来自于mlocate包
选项
-i 不区分大小写的搜索
-n N 只列举前N个匹配项目
updatedb (新建的需要刷新)
[root@localhost /]#touch YJ
[root@localhost /]#
[root@localhost /]#
[root@localhost /]#updatedb
[root@localhost /]#locate -i yj
/YJ
/yj
/usr/share/man/man3/pthread_tryjoin_np.3.gz
[root@localhost /]#locate -n 2 yj
/yj
/usr/share/man/man3/pthread_tryjoin_np.3.gz
[root@localhost /]#locate -n 1 yj
/yj
find
命令的特点:
-
精确查找
-
实时查找
-
支持查找条件巨多
格式:
find [查找路径] [OPTION]... [查找条件] [处理动作]
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 |
按层次查找
-maxdepth level 最大搜索目录深度,指定目录下的文件为第1级
-mindepth level 最小搜索目录深度
例
find /etc/ -maxdepth 2
find /etc/ -mindepth 2
find /etc -maxdepth 2 -mindepth 2
对每个目录先处理目录内的文件,再处理目录本身
-depth
-d #warning: the -d option is deprecated; please use -depth instead, because the latter is a POSIX-compliant feature
例
[root@localhost data]#tree /data/
/data/
├── aa
│ ├── 1.txt
│ └── 2.txt
└── passwd
1 directory, 3 files
[root@localhost data]#find /data/aa/
/data/aa/
/data/aa/1.txt
/data/aa/2.txt
[root@localhost data]#find /data/aa/ -depth
/data/aa/1.txt
/data/aa/2.txt
/data/aa/
tree是外部命令需要先安装,yum install -y
根据文件名和inode查找
-name "文件名称" #支持使用glob,如:*, ?, [], [^],通配符要加双引号引起来
-inum n #按inode号查找
-iname "文件名称" #不区分字母大小写
-samefile name #相同inode号的文件
-links n #链接数为n的文件
例
[root@localhost data]#find /etc/ -name "*.conf"
[root@localhost data]#ls -i
50331777 aa 9243846 passwd
[root@localhost data]#find -inum 50331777
./aa
[root@localhost data]#ln /data/passwd ./hard
[root@localhost data]#ll
总用量 8
drwxr-xr-x. 2 root root 32 9月 20 01:14 aa
-rw-r--r--. 2 root root 2259 9月 20 01:00 hard
-rw-r--r--. 2 root root 2259 9月 20 01:00 passwd
[root@localhost data]#find -samefile passwd
./passwd
./hard
[root@localhost data]#find -links 2
根据属主、属组查找
-user USERNAME #查找属主为指定用户(UID)的文件
-group GRPNAME #查找属组为指定组(GID)的文件
-uid UserID #查找属主为指定的UID号的文件
-gid GroupID #查找属组为指定的GID号的文件
-nouser #查找没有属主的文件 无主
-nogroup #查找没有属组的文件
查看
更改属组
根据文件类型
-type TYPE
TYPE可以是以下形式:
f: 普通文件
d: 目录文件
l: 符号链接文件
s:套接字文件
b: 块设备文件
c: 字符设备文件
p: 管道文件