find命令:
语法:find 搜索 路径 匹配表达式
该命令用于在指定路径中查找符合条件的文件,搜索路径可以是多个目录,不同目录之间以空格分隔。
1)匹配表达式1
-name filename:要查找的文件名。可使用通配符"*"、"?",但要用双引号将文件名引起来。
-user username:查找属于 username 用户的文件。
-group groupname:查找属于groupname组的文件。
-print:显示找到的文件路径名。
例如:
find . -name "h*" -print在当前目录下查找以h开头的文件。
find / -name hosts -print在整个文件系统中查找名为hosts的文件。
2)匹配表达式2
-exec命令{}:对找到的匹配文件,执行所列出的命令,而不询问用户是否执行这些命令,参数{}由find找到当前的文件路径名取代,命令末尾必须有"\;"。
-ok命令{}:与-exec的用法相同,在执行命令前询问用户是否执行命令。
例如:find /home -user user1 -exec cat {} \;|more
找出/home下属于用户user1的所有文件并显示起内容。
-user选项常被用在要删除用户账户之前的文件清除。
例如:
find /home -user user1 -exec rm -r{} \;
找出/home下属于用户user1的所有文件并删除。
3)匹配表达式3
-atime n:查找前n天访问过的文件(仅第n天这一天);
-atime +n:查找前n天之前访问过的文件;-n则表示前n天之后
例如:
find /home -atime +365 -print找出用户一年前访问过的文件。
find $HOME -user user1 -atime -3 -exec ls -l {}\;
找出用户user1主目录下属于自己的前三天以后访问过(跳过3天以来没用过)的文件并以长格式显示属性。
4)匹配表达式4
-type filetype:指定查找的文件类型。
filetype可以是:b块文件;c字符设备文件;d目录文件;f一般文件;l符号链接文件。
例如:
find .-type d -print在当前目录下查找所有子目录。
find.-type f -print在当前目录下查找所有普通文件。
5)匹配表达式5
-size Number 和 -size Numberc:按照文件大小进行查找。Numberc表示以字节为单位,否则以块(一般是512字节)为单位。-Number(或-Numberc)表示查找比该值小的文件,+Number(或-Numberc)表示查找比该值大的文件。
例如:
find.-size -10 -print
在当前目录下查找所有长度小于10块的文件。
find.-size.-10c -print|ls -l
在当前目录下查找所有长度小于10字节的文件并以长格式显示文件信息。
find.-size +100 -size -200 -exec ls -s {} \;
在当前目录下查找100-200块长的文件并显示文件的实际块数。