⑴[rootlocalhost test]# ll
⑵-rw-r--r-- root root - : log.log
⑶-rw-r--r-- root root - : log.log
⑷-rw-r--r-- root root - : log.log
⑸lrwxrwxrwx root root - : log_link.log -》 log.log
⑹-rw-r--r-- root root - : log.log
⑺-rw-r--r-- root root - : log.txt
⑻drwxr-xr-x root root - : scf
⑼drwxrwxrwx root root - : test
⑽drwxrwxrwx root root - : test
⑾[rootlocalhost test]# find 。 -type f -mtime + -exec rm {} ;
⑿[rootlocalhost test]# ll
⒀-rw-r--r-- root root - : log.log
⒁lrwxrwxrwx root root - : log_link.log -》 log.log
⒂drwxr-xr-x root root - : scf
⒃drwxrwxrwx root root - : test
⒄drwxrwxrwx root root - : test
⒅[rootlocalhost test]#
⒆在shell中用任何方式删除文件之前,应当先查看相应的文件,一定要小心!当使用诸如mv或rm命令时,可以使用-exec选项的安全模式。它将在对每个匹配到的文件进行操作之前提示你。
⒇实例:在目录中查找更改时间在n日以前的文件并删除它们,在删除之前先给出提示
⒈find 。 -name “*.log” -mtime + -ok rm {} ;
⒉[rootlocalhost test]# ll
⒊-rw-r--r-- root root - : log.log
⒋lrwxrwxrwx root root - : log_link.log -》 log.log
⒌drwxr-xr-x root root - : scf
⒍drwxrwxrwx root root - : test
⒎drwxrwxrwx root root - : test
⒏[rootlocalhost test]# find 。 -name “*.log” -mtime + -ok rm {} ;
⒐《 rm 。。。 。/log_link.log 》 ? y
⒑《 rm 。。。 。/log.log 》 ? n
⒒[rootlocalhost test]# ll
⒓-rw-r--r-- root root - : log.log
⒔drwxr-xr-x root root - : scf
⒕drwxrwxrwx root root - : test
⒖drwxrwxrwx root root - : test
⒗[rootlocalhost test]#
⒘在上面的例子中, find命令在当前目录中查找所有文件名以.log结尾、更改时间在日以上的文件,并删除它们,只不过在删除之前先给出提示。按y键删除文件,按n键不删除。
⒙实例:-exec中使用grep命令
⒚find /etc -name “passwd*” -exec grep “root” {} ;
⒛[rootlocalhost test]# find /etc -name “passwd*” -exec grep “root” {} ;
①root:x:::root:/root:/bin/bash
②root:x:::root:/root:/bin/bash
③[rootlocalhost test]#
④任何形式的命令都可以在-exec选项中使用。在上面的例子中我们使用grep命令。find命令首先匹配所有文件名为“ passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后执行grep命令看看在这些文件中是否存在一个root用户。