find 查找文件
语法: find 路径 参数
-atime +n/-n: 访问或执行时间大于 / 小于 n 天的文件
-ctime +n/-n: 写入, 更改 inode 属性 (例如更改所有者, 权限或者链接) 时间大于 / 小于 n 天的文件.
-mtime +n/-n: 写入时间大于 / 小于 n 天的文件
-name filename: 直接查找该文件名的文件
atime:access time, 在读取文件或者执行文件时更改.
mtime:modified time, 在写入文件时随内容更改而更改.
ctime:create time, 在写入文件, 更改所有者, 权限, 链接设置随 inode 的内容更改而更改.
inode 就是索引节点, 用来存放档案及目录的基本信息, 包含时间信息, 文档名, 所有者, 所属组等.
查看时间属性: stat
atime 不一定在访问文件之后被修改.
若 mtime,atime 修改 inode 就一定会改, 既然 inode 改了, 那 ctime 也就跟着改了.
-type filetype: 通过文件类型查找.
例如: find / -name 1.txt
转: Linux 中 find 命令 - path -prune 用法详解
在 Windows 中可以在某些路径中查找文件, 也可以设定不在某些路径中查找文件, 下面用 Linux 中的 find 的命令结合其 - path -prune 参数来看看在 Linux 中怎么实现此功能.
假如在当前目录下查找文件, 且当前目录下有很多文件及目录(多层目录), 包括 dir0,dir1 和 dir2 ... 等目录及 dir00,dir01...dir10,dir11... 等子目录.
在当前目录下查找所有 txt 后缀文件
find ./ -name .txt
2. 在当前目录下的 dir0 目录及子目录下查找 txt 后缀文件
find ./ -path './dir0' -name .txt
3. 在当前目录下的 dir0 目录下的子目录 dir00 及其子目录下查找 txt 后缀文件
find ./ -path 'dir00' -name .txt
4. 在除 dir0 及子目录以外的目录下查找 txt 后缀文件
find ./ -path './dir0' -a -prune -o -name .txt -print
说明:-a 应该是 and 的缩写, 意思是逻辑运算符'或'(&&); -o 应该是 or 的缩写, 意思是逻辑运算符'与'(||), -not 表示非.
命令行的意思是: 如果目录 dir0 存在(即 - a 左边为真), 则求 - prune 的值,-prune 返回真,'与'逻辑表达式为真(即 - path './dir0' -a -prune 为真),find 命令将在除这个目录以外的目录下查找 txt 后缀文件并打印出来; 如果目录 dir0 不存在(即 - a 左边为假), 则不求值 - prune ,'与'逻辑表达式为假, 则在当前目录下查找所有 txt 后缀文件.
5. 在除 dir0,dir1 及子目录以外的目录下查找 txt 后缀文件
find ./ ( -path './dir0' -o -path './dir1' ) -a -prune -o -name .txt -print
注意: 圆括号 () 表示表达式的结合. 即指示 shell 不对后面的字符作特殊解释, 而留给 find 命令去解释其意义. 由于命令行不能直接使用圆括号, 所以需要用反斜杠'\'进行转意(即'\'转意字符使命令行认识圆括号). 同时注意'(',')'两边都需空格.
6. 在 dir0,dir1 及子目录下查找 txt 后缀文件
find ./ ( -path './dir0' -o -path './dir1' ) -a -name .txt -print
+1. 在所有以名为 dir_general 的目录下查找 txt 后缀文件
find ./ -path '/dir_general/' -name .txt -print
来源: http://www.bubuko.com/infodetail-2637104.html