Linux下的find命令,顾名思义,它是在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的命令参数,也就是以何种条件进行查找。
命令格式:find [路径] [命令参数] [表达式]
默认路径是当前路径,默认表达式是 -print;
-print:将查找到的文件输出到标准输出;
例如:在终端执行命令 find 或者 find. 或者find. -print 这三个命令得到的结果是一样的 ,都是将当前目录的所有文件输出到终端
-exec command {} \;
# 将查到的文件结果执行command操作
-ok和-exec用法相同, 不同之处在于-ok在操作前会询问用户
find命令的参数:
1、 -name filename
#查找名为filename的文件
2、 -perm
#按执行权限查找
例如查看执行权限为744的文件,使用-exec ls -l 操作,可以看到返回文件的实际权限
3、-user username
#按文件属主查找
-nouser
#查找无有效属主的文件
4、 -group groupname
#按属组查找,即查找属于groupname这个组的文件
-nogroup
#查找无有效属组的文
5、-newer f1
#查找更改时间比f1新的文件
6、-type b/d/c/p/l/f
#查找是块设备、目录、字符设备、管道、符号链接、普通文件
例如在当前目录的子目录levelDB中查找目录文件(可用于打印目录结构)
7、-size n[c]
#查找长度为n块或者n字节的文件
例如查找大小为10k的文件
按时间戳查找
8、–ctime -n +n
#按文件更改时间来查找文件,-n指n天以内,+n指n天以前
查找8天内更改的文件
10、-atime -n +n
#按文件访问时间来查找文件,-n指n天以内,+n指n天以前
-amin n
#最近n分钟访问的文件
例如查看最近5分钟访问过的文件
11、-mtime -n +n
#按文件最后修改时间(指的是文件内容修改的时间)来查找文件,-n指n天以内,+n指n天以前
需要注意的是:
文件的 create time,即ctime 是在写入文件、更改所有者、权限或链接设置时随inode 的内容更改而更改的。
因此,更改文件的内容即会更改 mtime 和 ctime,但是文件的 ctime 可能会在 mtime 未发生任何变化时更改 – 在权限更改,但是文件内容没有变化的情况下。
用ls 命令查看文件的 atime、ctime 和 mtime。
ls -lc filename 列出文件的 ctime
ls -lu filename 列出文件的 atime
ls -l filename 列出文件的 mtime