find 命令有三个选项:
1) -mtime 按照文件的更改时间来查找文件
2) -ctime 按照文件状态改动时间来查找文件
3) -atime 按照文件访问时间来查找文件
不知道你对这三种“时间”是如何认识的?
1) mtime 指文件的内容发生改变,如:cat>>file1
2) ctime 指文件的属性(文件的I节点)被改变,如: chmod u+x file1
3) atime 指文件被读取过,如:cat file1
使用ls命令,如何看这三种时间?
1) mtime ls –l
2) ctime ls –lc
3) atime ls –lu (u和c选项必须和l一起用)
不知偶理解得对不对?
还有一个问题?
find 命令查找文件时可以跳过某个子目录,如在当前路径中查找所有文件,但不查找在子目录xia中的文件
find . –path “./xia” –prune –o print
进一步,查找字符1开头的文件,在当前路径中查找,但跳过子目录xia
find . –path “./xia” –prune –o –name “1*” -print
这个命令的机制是:
if path = ./xia
then
-prune
else
if filename = “1*”
then
fi
fi
<几个有用的例子>
* 跳过多个目录
find /usr/sam -path /(/usr/sam/dir1 -o /usr/sam/dir2/) -prune -o -name "temp*" -print
* 查找当前目录中24小时内被修改过的文件
find . /( -type d ! -name . -prune /) -o /(-mtime -1 -print /)
* 在指定目录(如:./test)中查找24小时内修改过的文件
find ./test /( -type d ! -name 'test' -prune /) -o /( -type f -mtime -1 -print /)
* 创建一个寻找文件的别名
alias ff "find . -name '*/!{*}*' -ls"
使用别名:ff testfile