Linux中find常见用法示例

.find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;

find命令的参数:

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。

-print: find命令将匹配的文件输出到标准输出。

-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。

-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

#-print 将查找到的文件输出到标准输出

#-exec   command   {} \;      —–将查到的文件执行command操作,{} 和 \;之间有空格

#-ok 和-exec相同,只不过在操作前要询用户

1,查找文件以txt结尾的文件并删除。

 例如:find / type -f -name .txt | xargs rm -rf

2.查当前目录下的所有普通文件。

 例如:[root@localhost ~]# find . -type f -exec ls -l {} \;  (查找文件)

          [root@localhost ~]# find ./ -name "*.txt" -exec ls -l {} \;(查找.txt结尾的文件)

          [root@localhost ~]# find ./ -name *.txt |xargs ls -l

3,在/ l o g s目录中查找更改时间在5日以前的文件并删除它们。

 例如:[root@localhost ~]# find ./logs -type f -mtime +5 -exec   -ok   rm {} \;

4,查询当天修改过的文件。

 例如:[root@localhost ~]#  find   ./ -mtime -1 -type f  -exec ls -l {} \;

5,查询文件并询问是否要显示。

 例如:[root@localhost ~]# find   ./   -mtime   -1   -type f   -ok   ls -l   {} \;

6,查询并交给awk去处理。

 例如:[root@localhost ~]#  awk -F ":" '{print $1}' /etc/passwd |head -2

 例如:[root@localhost ~]#  awk -F ":" '{print $1}' /etc/passwd |tail -2

 例如:#df   -k |awk ‘{print $1}’ |grep   -v   ’none’

 例如:[root@localhost ~]# df -k |awk '{print $1}' |grep -v ’none’|sed  's/dev/sshd/g' (把/dev/替换成/sshd)

7,要查找磁盘中大于3M的文件。

 例如:#find . -size +3000k -exec ls -ld {} ;

[root@localhost /]# find ./ -type f  -size +3000k |xargs ls -ld

8,将find出来的东西拷到另一个地方。

 例如:#find *.c -exec cp ‘{}’ /tmp ‘;’

9,查找2016-11-30 16:36:37时更改过的文件。

 例如:# A=`find ./ -name "*php"` |   ls -l –full-time $A 2>/dev/null | grep "2016-11-30 16:36:37"

 例如:A=`find ~ -print` | ls -l –full-time $A 2>/dev/null | grep "Jun 27" | grep 1998

10,查找60天以前修改过内容的文件。

[root@localhost ~]# find ./ -name "*.sh" -mtime -60 -print

11,查找过去60天之内的变更的文件。

[root@localhost ~]# find ./ -name "*.sh" -mtime +60 -print