文件类型:file,查看文件类型,例: #file /etc/password 文件的查找: which (寻找『执行文件』) # which [-a] command 参数: -a :列出所有可以找到的指令,默认是第一个被找到的指令例: # which passwd /usr/bin/passwd # which traceroute -a /usr/sbin/traceroute /bin/traceroute 该指令是根据『PATH』这个环境变量所规范的路径,去搜寻执行文件名字。 whereis (寻找特定文件) # whereis [-bmsu] 文件或目录名参数: -b :只找 binary 的文件 -m :只找在说明文件, manual 路径下的文件 -s :只找 source 来源文件 -u :没有说明文件的文件! 例: # whereis passwd 相关的都会被找出来 passwd: /usr/bin/passwd /etc/passwd /etc/passwd.OLD /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz # whereis -b passwd passwd: /usr/bin/passwd /etc/passwd /etc/passwd.OLD # whereis -m passwd passwd: /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz locate :只要包含被搜索名字的都会被找出来。 # locate filename # locate passwd /lib/security/pam_passwdqc.so /lib/security/pam_unix_passwd.so /usr/lib/kde3/kded_kpasswdserver.so /usr/lib/kde3/kded_kpasswdserver.la 因为 Linux 系统会将系统内的所有文件都记录在一个数据库文件里面,而当使用 whereis,locate 时,都会以此数据库文件的内容为准,因此,有的时后你还会发现使用这两个执行文件时,会找到已经被杀掉的文件!而且也找不到最新的刚刚建立的文件,可以直接使用 /usr/bin/updatedb来更新数据库文件!所以该指令比find要快的多。可以自己选择需要建立文件数据库的目录!在 /etc/updatedb.conf 配置文件设定。 把『DAILY_UPDATE=no』改成 『DAILY_UPDATE=yes』。 find :强大,但缓慢。 # find [PATH] [option] [action] 参数: 1. 时间有关的参数: -atime n :在 n 天之前的『一天之内』被 access 过的文件; -ctime n :在 n 天之前的『一天之内』被 change 过状态的文件; -mtime n :在 n 天之前的『一天之内』被 modification 过的文件; -newer file :file 为一个存在的文件,意思是说,只要文件比 file 还要新,就会被列出来 2. 使用者或组名称有关的参数: -uid n :n 查找UID相关的。这个 UID 是记录在/etc/passwd -gid n :n 查找GID相关的,这个 GID 记录在/etc/group, -user name :使用者账号! -group name:群组名; -nouser :寻找文件的拥有者不存在 /etc/passwd 的! -nogroup :寻找文件的拥有群组不存在于 /etc/group 的! 3. 与文件权限及名称有关的参数: -name filename:搜寻文件名称为 filename 的文件; -size [+-]SIZE:搜寻比 SIZE 还要大(+)或小(-)的文件。这个 SIZE 的规格有: c: 代表 byte, k: 代表 1024bytes。 -type TYPE :搜寻文件的类型为 TYPE 的,类型主要有:一般正规文件 (f),装置文件 (b, c), 目录 (d), 连结文件 (l), socket (s), 及 FIFO (p) 等属性。 -perm mode :搜寻文件属性『刚好等于』mode的文件,这个mode为类似chmod的属性值,例 -rwsr-xr-x 的属性为 4755 ! -perm -mode :搜寻文件属性大于等于mode 的属性的文件。 -perm +mode :搜寻文件属性包含任一 mode 的属性的文件! 4. 额外可进行的动作: -exec command :command 为其它指令,-exec 后面可再接额外的指令来处理搜寻到的结果。 -print :将结果打印到屏幕上,默认就是。 例:将过去系统上面 24 小时内有更动过内容 (mtime) 的文件列出 # find / -mtime 0 0代表目前时间? # find / -mtime 3 之前的 3*24 ~ 4*24 小时之间 例:寻找 /etc 底下的文件,如果文件日期比 /etc/passwd 新就列出 # find /etc -newer /etc/passwd 例:搜寻 /home 底下属于cc的文件 # find /home -user cc 例:搜寻系统中不属于任何人的文件 # find / -nouser (这个对安全有一定作用,新装软件很多文件就不属于任何人) 例:找出名为 passwd 文件 # find / -name passwd 例:搜寻文件属性为 f 的文件 # find /home -type f 例:搜寻文件当中含有 SGID/SUID/SBIT 的属性 # find / -perm +7000 例:将上到的文件使用 ls -l 列出来 # find / -perm +7000 -exec ls -l {} \; {} 代表的是『由 find 找到的内容』, \; 则是表示-exec 的指令到此为止 -exec 最后一定要以 \; 结束 例:找出系统中,大于 1MB 的文件 #find / -size +1000k
阅读(321) | 评论(0) | 转发(0) |