Find指令
Linux下find命令在目录结构中搜索文件,并执行指定的操作。
(速度较慢 遍历文件 真真切切地查找)
1 命令格式
find pathname -options [-print -exec -ok ...]
2 命令功能
用于在文件树种查找文件,并做出相应处理(可能访问磁盘)
3 命令参数
pathname:find 命令所查找的目录路径。
例如:. 表示当前目录 用/表示系统根目录
-print : find 命令将匹配的文件输出到标准输出中。
-exec: find命令对匹配的文件执行该菜蔬所给出的shell命令。
相应的命令形式为’command’ { } \; 注意{ }和\之间的空格。
-ok: 和-exec的作用相同,只不过是以一种更安全的模式来执行给出的shell命令,在执每一个命令之前,都会给出提示,让用户来确定是否执行。
4 命令选项:
-name 按照文件名查找文件
配合通配符使用
-perm 按照文件权限来查找文件
-prune 使用这一选项可以使用find命令不在当前指定目录查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
详见:http://blog.csdn.net/zzxian/article/details/8446703
-user 按照文件的属主来查找文件。
-group 按照文件所属的组来查找
-mtime -n +n 按照文件更改时间来查找
n n天先前1天
find ./ -mtime 4
-n 表示文件的更改时间距离现在n天以内
+n 表示文件的更改时间距离现在n天以前
find命令还有-atime 和 -ctime选项 但它们和-m time选项相同
-nogroup 查找无有效所属组的的文件,即该文件的所属组在/etc/groups中不存在
-nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在
-newer file1 ! -newer file2 查找更改时间比文件file1新但比file2旧的文件
-type 查找某一类型的文件,诸如:
b - 块设备文件
d - 目录
c -字符设备文件
p - 管道文件
l - 符号链接文件
f - 普通文件
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计算
查找大小小于1kb的文件
-depth :在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
参数-depth 的意思是:在处理目录以前首先处理目录下的子内容。
也即是说在不加-depth的时候, 处理顺序是首先处理目录本身,然后处理目录下的子内容。加不加-depth参数,会影响输出结构的输出顺序。
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount:在查找文件时不跨越文件系统mount点
-follow : 如果find命令遇到符号链接文件,就跟踪到链接所指向的文件。-cpio: 对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
另外:
下面三个的区别:
-建时间来查找文件, -n指n天以内 +n 指n天以前
例子
1 在/logs目录中查找更改时间在5月以前的文件并删除它们
2 Linux用find命令查找文件大小为XX的文件的方法
http://blog.chinaunix.net/uid-24648486-id-2998767.html
#-name 根据文件名查找(精确查找)
#-iname 根据文件名查找,但不区分大小写
*表示通配任意的字符
?表示通配任意的单个字符
[ ]表示 通配括号里面的任意一个字符
#-a 连接两个不同条件(两个条件必须同时满足 and 与)
#-o (or 或)
#-not (!)
#-atime #-mtime #-ctime #-amin #-mmin #-cmin
所以这里atime,mtime,ctime就是分别对应的“最近一次访问时间”“最近一次内容修改时间”“最近一次属性修改时间”,这里的atime的单位指的是“天”,amin的单位是分钟
#find /tmp –atime +5 //表示查找在五天内没有访问过的文件
#find /tmp -atime -5 //表示查找在五天内访问过的文件
---------------------------------------------------------------------------------
权限与指令之间的关系
1. 让用户能进入目录成为【可工作目录】的基本权限为何:
可使用的指令:例如cd等变换工作目录的指令;
目录所需权限:用户对这个目录至少需要具有x的权限;
额外需求:如果用户想要在这个目录内用ls查阅文件名,则用户对此目录还需要r的权限。
2. 用户在某个目录内读取一个档案的基本权限为何?
可使用的指令: 例如cat,more,less等;
目录所需要的权限:用户对这个目录至少需要x权限;(进入)
档案所需要的权限: 使用者对档案至少需要具有r的权限才行!
------特殊
3. 让使用者修改一个档案的基本权限为何?
可使用的指令: 例如nano或vim等
目录所需要的权限: 用户在该档案所在目录至少要有rw权限
4. 让一个使用者可以建立一个档案的基本权限为何?
目录所需权限:用户在该目录要有wx权限,
5. 让用户进入目录并执行该目录下的某个指令之基本权限为何?
目录所需权限:用户在该目录至少需要有x权限。
档案所需权限:使用者在该档案下至少需要有x权限。
让一个使用者能够进行【cp /fir1/file /dir2】的指令,请说明dir1,file1,dir2的最小所需权限为何?
· dir1 :至少需要有 x 权限;
· file1:至少需要有 r 权限;
· dir2 :至少需要有 w, x 权限。