| 关键词: 文件 print find 命令 系统 时间 表达式 prune test 目录 |
find -perm 775 按文件权限查找。 -exec find命令对匹配的文件执行该参数所给出的s h e l l命令。相应命令的形式为' c o m m - and' {} \;,注意{ }和\;之间的空格。 -bash-3.2$ find . -name registry.xml -exec file {} \; ./registry.xml: XML 1.0 document text -ok 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的s h e l l命令, 在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 < file … ./registry.xml > ? yes -bash-3.2$ mkdir -p test/test1/test2 -bash-3.2$ cd test -bash-3.2$ touch lo test1/lo test1/test2/lo -bash-3.2$ find . -path "./test1/test2" -prune -o -name "lo" -print ./lo ./test1/lo -path "/usr/sam" -prune -o -print 是 -path "/usr/sam" -a -prune -o -print 的简写表达式按顺序求值, -a 和 -o 都是短路求值,与 shell 的 && 和 || 类似如果 -path "/usr/sam" 为真,则求值 -prune , -prune 返回真, 与逻辑表达式为真;否则不求值 -prune,与逻辑表达式为假。如果 -path "/usr/sam" -a -prune 为假,则求值 -print , -print返回真,或逻辑表达式为真;否则不求值 -print,或逻辑表达式为真。 if -path "/usr/sam" then -prune else -print #find /usr/sam \(-path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -name "temp" -print -user-group ctime含inode信息修改的时间。 mtime只指文件内容建立或修改的时间 atime 用touch可以写出你想要的任何时间的文件,然后用-newer ,! -newer选项即可成功 touch -afile#modify atime to now -mfile#modify mtime to now -r refFile#modify time to same of refFile -t Time [[CC]YY]MMDDhhmm[.SS] 希望在系统根目录下查找更改时间在5日以内的文件,可以用: $ find / -mtime -5 -print 为了在/ v a r / a d m目录下查找更改时间在3日以前的文件,可以用: $ find /var/adm -mtime +3 -print -newer file1 ! -newer file2 比file1新但是比file2旧的文件 -size +100000c 大于100000字节的文件 为了在当前目录下查找长度超过1 0块的文件(一块等于5 1 2字节),可以用: $ find . -size +10 -print 为了在/logs目录中查找更改时间在5日以前的文件并删除它们,可以用: $ find logs -type f -mtime +5 -exec rm {} \; 使用mount选项 在当前的文件系统中查找文件(不跨越其他文件系统),可以使用f i n d命令的m o u n t选项。 在下面的例子中,我们从当前目录开始查找位于本文件系统中文件名以X C结尾的文件: $ find . -name "*.XC" -mount -print -nouser 、nogroup 查找无有效属主的文件,即该文件的属主在/ e t c / p a s s w d中不存在。 /etc/fstab本系统中有关文件系统的信息 -cpio 对匹配的文件使用c p i o命令,将这些文件备份到磁带设备中。 -follow 如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。 -depth 广度优先 设置suid位$ find . -type f -perm 4755 -print 为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径,可以用: $ find / -type f -size 0 -exec ls -l {} \; 为了查找/var/logs目录中更改时间在7日以前的普通文件,并删除它们,可以用: $ find /var/logs -type f -mtime +7 -exec rm {} \; 为了查找系统中所有属于a u d i t组的文件,可以用: $find /-name -group audit -print 我们的一个审计系统每天创建一个审计日志文件。日志文件名的最后含有数字,这样我 们一眼就可以看出哪个文件是最新的,哪个是最旧的。A d m i n . l o g 文件编上了序号: admin.log . 0 0 1、a d m i n . l o g . 0 0 2等等。下面的f i n d命令将删除/ l o g s目录中访问时间在7日以前、 含有数字后缀的a d m i n . l o g文件。该命令只检查三位数字,所以相应日志文件的后缀不要超过 999。 $find /logs -name 'admin.log[0-9][0-9][0-9]' -atime +7 -exec rm {} \; 为了查找当前文件系统中的所有目录并排序,可以用: $find . -type d -print -local -mount |sort 为了查找系统中所有的rmt磁带设备,可以用: $find /dev/rmt -print |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|