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