文件查找类命令
Created at 2019-03-26 Updated at 2019-08-15 Category Linux基础
文件查找类命令
locate : 模糊查询, 非实时查询
速度快 不太准确
updatedb : 更新数据库
find : 精确查询 , 实时查询
遍历文件路径
find /etc -name passwd
find 查找路径 查找标准 执行动作
find ./ -name passwd
查找标准:
1.文件名
-name : 根据文件名
find /tmp -name “*.sh” 通配符
-iname : 忽略文件名大小写
2. 文件类型
-type
d: 目录
c: 字型装置文件FIND
b: 区块装置文件
p: 具名贮列
f: 一般文件
l: 符号连结
p : pipe 管道 FIFO
find ./ -type d -ls
3. 文件大小
-size 数字M
数字GFIND
数字K
字节
+ -
+10M : 大于10M
-10M : 小于10M
find / -size 10M
10k : 9.几
1k :
4. 按属主 属组
-user
-group
find ./ -user nautilus -a -type d -ls
条件组合: -a : and 并列
-o : or 或者
-not : 非
find ./ -not -user root -ls
找到非root用户的文件
5. 时间
-atime access time : 访问时间
-mtime modify time : 修改时间 内容
-ctime change time : 改变时间
元数据
-atime 5 : 之前第5天访问的FIND
+5 : 5天之前访问的
-5 : 5天之内访问的
-amin : 分钟
-mmin
-cminN
6. 按权限去查找
-perm : permission 权限
permission deny : 提权到root
-perm 644
mode
/mode : /111 001 只要满足一位就可以
-mode : -644 755 640(X)
执行动作:
-ls: 详细信息
-print : 显示
-exec : 执行命令
-ok : 执行命令
find ./ -perm /001 -a -type f -exec chmod o-x {} ;
找到 其他用户有执行权限 文件类型是普通文件 去掉其他用户的执行权限
{} : 指代前面find找到的文件
; 固定的结束标志
find ./ -name “*.sh” -ok mv {} {}.new ;
找到.sh 结尾的文件 加上.new
ok : 每次都确认
链接文件:
硬链接 : 不同的文件路径 对应一个inode号
目录没有硬链接
硬链接不可以跨文件系统
符号链接 : 存的是文件路径,不同的inode号
目录可以有符号链接
可以跨文件系统
1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
2.软链接可以 跨文件系统 ,硬链接不可以
3.软链接可以对一个不存在的文件名进行链接
4.软链接可以对目录进行链接
硬链接:
1.硬链接,以文件副本的形式存在。但不占用实际空间。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建
ln -s -v
创建硬链接: ln 源文件 链接文件
创建符号链接: ln -s 源文件 链接文件
设备文件 :
主设备号 , 次设备号
设备文件 : 是访问设备的入口文件
F 没有大小
主设备号: 标明设备的类别
次设备号 : 同一类的不同设备
mknod mychar c 88 0
mknod myblock b 99 1
mknod : 创建设备文件
文件名 b/c 主设备号 次设备号
主设备号不能跟已有的重复
find locate
ln -s
mknod
主设备号 次设备号
给文件创建软链接,为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效:
ln -s log2013.log link2013
输出:
[root@localhost test]# ll
-rw-r–r– 1 root bin 61 11-13 06:03 log2013.log
[root@localhost test]# ln -s log2013.log link2013
[root@localhost test]# ll
lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log
-rw-r–r– 1 root bin 61 11-13 06:03 log2013.log
给文件创建硬链接,为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同
ln log2013.log ln2013
输出:
[root@localhost test]# ll
lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log
-rw-r–r– 1 root bin 61 11-13 06:03 log2013.log
[root@localhost test]# ln log2013.log ln2013
[root@localhost test]# ll
lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log
-rw-r–r– 2 root bin 61 11-13 06:03 ln2013
-rw-r–r– 2 root bin 61 11-13 06:03 log2013.log