一、find命令
find [PATH] [option] [action]
选项与参数:
1.与时间有关的选项:共有 -atime, -ctime , -mtime .以-mtime为例:
-mtime n : n为数字,意义为在n天之前的【一天之内】被改动过内容的文件;
-mtime +n: 列出在n天之前(不含n天本身)被改动过内容的文件档名;
-mtime -n: 列出在n天之内(含n天本身)被改动过内容的文件档名;
-newer file: file为一个存在的文件,列出比file还要新的文件档名。
范例一:将过去系统上24小时内有改动过内容的文件列出
find / -mtime 0 (0代表的是当期的时间)
范例二:寻找/etc下的文件,如果文件日期比/etc/passwd新就列出来
find /etc -newer /etc/passwd
2.与使用者或组名有关的参数:
-uid n : n为数字,这个数字是用户的账号ID;
-gid n : n为数字,这个数字是组名的ID;
-user name : name为使用者账号名称;
-group name : name为组名;
-nouser : 寻找文件的拥有者不在/etc/passwd的人;
寻找文件的拥有群组不在/etc/group的人;
范例一:搜寻/home底下属于tpuser 用户的文件
find /home -user tpuser
3.与文件权限及名称有关的参数:
-name filename : 搜寻文件名为filename的文件;
-size [+-]SIZE : 搜寻比SIZE还要大或小的文件。(c:代表byte,k代表1024bytes);
-type TYPE : 搜寻文件的类型为TYPE的,
-perm mode : 搜寻文件权限【刚好等于】mode的文件,mode为类似chmod的属性值;
-perm -mode:搜寻文件权限【全部囊括mode的权限】的文件;
-perm /mode : 搜寻文件权限【包含任一mode的权限】的文件;
范例一:找出档名为passwd这个文件
find / -name passwd
4.额外可进行的动作:
-exec command : command 为其他指令,-exec后面可再接额外的指令来处理搜寻到的结果
-print :将结果打印到屏幕上,这个动作是预设动作。
范例一:搜寻文件当中含有SGID或SUID或SBIT的属性的文件,并使用ls -l 列出来
find /usr/bin /usr/sbin -perm /7000 -exec ls -l {} \;
-exec一直到 \; 是关键词,代表find额外动作的开始(-exec)到结束(\;)在这中间的find指令内的额外动作。在本例中就是【ls -l {}】。
二、locate/updatedb
1. loacte [-ir] keyword
选项与参数
-i : 忽略大小写的差异
-c : 不输出档名,仅计算找到的文件数量
-l : 仅输出几行,例 -l 5
-S : 输出locate锁使用的数据库文件的相关信息
-r : 后面可接正规表示法的显示方式;
范例一、找出系统中所有与passwd相关的档名,且只列出5个
locate -l 5 passwd
2. updatedb
locate使用是有限制的,他是由数据库来搜寻的,而数据库的建立是每天执行一次,所以新建立起来的文件,如果还用数据库更新之前的数据库搜巡文件,则locate搜寻不到,所以需要更新数据库,手动更新数据库的命令就是直接输入【updatedb】就行了。
三、which命令
1. which [-a] command
这个指令是根据【path】这个环境便令锁规范的路径,去搜寻【执行档】的档名