find指令
Linux中find命令在目录结构中搜索文件,并执行指定的操作。
Linux下find命令提供了很多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。find真的非常重要。
命令格式
find [查找目录] [查找规则] [查找完后的操作]
如:find .(查找目录.就是当前的目录)-perm 000(查找规则 -perm就是按权限查找) -exec(查找后执行) ls -l {} \;(显示一条一条找到的文件)
find的应用:
单个规则的使用
1、-name 按照文件名查找文件。
2、-perm 按照文件权限来查找文件
3、-user 按照文件所有者来查找文件
4、-group 按照文件所属组来查找文件
5、根据文件的时间戳信息查找文件
有-mtime 以最近一次修改时间为参数
有 -atime 以最近一次访问时间为参数
有 -ctime 以最近一次更改时间为参数(文件属性时间)
-mtime -n +n - n表示文件修改时间距现在n天以内,+ n表示文件修改时间距现在n天以前
-mtime -n +n - n表示文件修改时间距现在n分钟以内,+ n表示文件修改时间距现在n分钟以前
-ctime和-atime与-mtime用法一样,所以这里只介绍-mtime
6、-nogroup 查找无有效所属组的文件
find pathname -nogroup
7、-nouser 查找无有效所有者的文件
find pathname -nouser
8、-newer file1查找更改时间比file1的更改时间距离当前时间近的文件
9、-type 查找某一类型的文件
文件类型有:
b - 块设备文件
d - 目录
c - 字符设备文件
p-管道文件
l-符号链接文件
f - 普通文件
find pathname -type d:
其他的换一下后面的字符就好
10、-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计
find pathname -size +n //表示大于n字节的文件
find pathname -size -n //表示小于n字节的文件
find pathname -size n //表示等于n字节的文件
11、-depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找
-maxdepth n : 搜索深度距离当前目录最多n个子目录深度
-mindepth n :搜索深度距离当前目录至少n个子目录深度
12、-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了 本系统中有关文件系统的信息。
13、-mount:在查找文件时不跨越文件系统mount点。
14、
-follow:如果find命令遇到符号链接⽂文件,就跟踪⾄至链接所指向的文件
15、
-cpio:对匹配的文件使⽤用cpio命令,将这些文件备份到磁带设备中
多个组合使用:
查找当前目录下所有权限为664的文件,并显示
查找当前目录下权限为332所属组为cl的文件,并显示
对于find来说还有更多的使用,记住这些很难,但是多练习就会变熟悉。
一定要多练习,练习,练习。
黏滞位
什么是黏滞位?
一般的,在Linux系统中用户只要对某个目录具备w写入权限,便可以删除该目录中的任何文件,而不论这个文件的权限是什么。
比如:进入root用户,创建目录class,并将权限设置为777,然后在class下创建文件file
以普通用户登录,可以删除file
在linux中权限为 “rwxrwxrwx”,即允许任意用户、任意程序在该目录中进行创建、删除、移动文件或子目录操作。然而试想一下,若任意一个普通用户都能够删除系统服务运行中使用的临时文件,将造成什么结果?
所以黏滞位的概念为:粘滞位权限便是针对此种情况设置的,当目录被设置了粘滞位权限以后,即便用户对该目录有写入权限,也不能删除该目录中其他用户的文件数据,而是只有该文件的所有者和root用户才有权将其删除。
粘滞位权限只能针对目录设置,对于文件无效。
黏滞位的作用是?以及如何设置?
粘滞位权限都是针对其他用户(other)设置,使用chmod命令设置目录权限时,“o+t” ------ 权限模式用于添加粘滞位权限。“o-t” ------ 权限模式用于移除粘滞位权限。设置了粘滞位权限的目录,使用ls命令查看其属性时,其他用户权限处的“x”将变为“t”。
如:
为mydir设置好黏滞位,然后进普通用户进行删除file时,就不能进行删除了。