Linux find命令查找的时间问题

本文发布时间: 2019-Mar-22
在Linux中,没有文件创建时间的概念。只有文件的访问时间、修改时间、状态改变时间。也就是说不能知道文件的创建时间。但如果文件创建后就没有修改过,修改时间=创建时间;如果文件创建后,状态就没有改变过,那么状态改变时间=创建时间;如果文件创建后,没有被读取过,那么访问时间=创建时间,这个基本不太可能。与文件相关的几个时间:1、访问时间,读一次这个文件的内容,这个时间就会更新。比如对这个文件使用more命令。ls、stat命令都不会修改文件的访问时间。2、修改时间,对文件内容修改一次,这个时间就会更新。比如:vi后保存文件。ls -l列出的时间就是这个时间。3、状态改变时间。通过chmod命令更改一次文件属性,这个时间就会更新。查看文件的详细的状态、准确的修改时间等,可以通过stat命令 文件名。比如: [jing@zhjh c]$ stat temp.c引用:File: 'temp.c'Size: 66 Blocks: 8 IO Block: 4096 u4e00u822cu6587u4ef6Device: 807h/2055d Inode: 1191481 Links: 1Access: (0664/-rw-rw-r--) Uid: ( 500/ jing) Gid: ( 500/ jing)Access: 2008-03-12 20:19:45.000000000 0800Modify: 2008-03-12 20:19:45.000000000 0800Change: 2008-03-12 20:19:45.000000000 0800说明:Access访问时间。Modify修改时间。Change状态改变时间。可以stat *查看这个目录所有文件的状态。一个同学问我在linux怎样按修改时间来查找文件,我Google之后才得到答案,写个笔记吧。find /home/admin -mtime -1 #查找/home/admin目录下修改时间在1天之内的文件find /home/admin -name *.txt -mtime -1 #查找/home/admin目录下修改时间在1天之内的文件名为.txt结尾的文件find 按文件修改时间查找文件---(+n)----------|----------(n)--------- -|----------(-n)--- (n+1)*24H前| (n+1)*24H~n*24H间 |n*24H内-ctime -n 查找距现在 n*24H 内修改过的文件-ctime n 查找距现在 n*24H 前, (n+1)*24H 内修改过的文件-ctime +n 查找距现在 (n+1)*24H 前修改过的文件[a|c|m]min [最后访问|最后状态修改|最后内容修改]min[a|c|m]time [最后访问|最后状态修改|最后内容修改]timelinux 文件的三种时间(以 find 为例):atime 最后一次访问时间, 如 ls, more 等, 但 chmod, chown, ls, stat 等不会修改些时间, 使用 ls -utl 可以按此时间顺序查看;ctime 最后一次状态修改时间, 如 chmod, chown 等状态时间改变但修改时间不会改变, 使用 stat file 可以查看;mtime 最后一次内容修改时间, 如 vi 保存后等, 修改时间发生改变的话, atime 和 ctime 也相应跟着发生改变.注意: linux 里是不会记录文件的创建时间的, 除非这个文件自创建以来没有发生改变, 那么它的创建时间就是它的最后一次修改时间.#ls -lt /home/admin # 按修改时间顺序查看#ls -lut /home/admin # 按访问时间顺序查看(如果想反序查看的话需要加一个选项 -r)------------------------------------------------------------------------------------------------------------关于1010 find 按文件修改时间查找文件:find 按文件修改时间查找文件---(+n)----------|----------(n)----------|----------(-n)--- (n+1)*24H前| (n+1)*24H~n*24H间 |n*24H内-ctime -n 查找距现在 n*24H 内修改过的文件-ctime n 查找距现在 n*24H 前, (n+1)*24H 内修改过的文件-ctime +n 查找距现在 (n+1)*24H 前修改过的文件[a|c|m]min [最后访问|最后状态修改|最后内容修改]min[a|c|m]time [最后访问|最后状态修改|最后内容修改]timelinux 文件的几种时间 (以 find 为例):atime 最后一次访问时间, 如 ls, more 等, 但 chmod, chown, ls, stat 等不会修改些时间, 使用 ls -utl 可以按此时间顺序查看;ctime 最后一次状态修改时间, 如 chmod, chown 等状态时间改变但修改时间不会改变, 使用 stat file 可以查看;mtime 最后一次内容修改时间, 如 vi 保存后等, 修改时间发生改变的话, atime 和 ctime 也相应跟着发生改变.注意: linux 里是不会记录文件的创建时间的, 除非这个文件自创建以来没有发生改变, 那么它的创建时间就是它的最后一次修改时间.#ls -lt ./ 按修改时间顺序查看#ls -lut ./ 按访问时间顺序查看(如果想反序查看的话需要加一个选项 -r)------------------------------------------------------------------------------------------------ls –tl file 按时间顺序显示我用下面这个删除一天之前改变的文件,就是删 不掉,后来把+号去掉就可以 用了,如下:find . -name "*.html" -mtime +1 -print0 |xargs -0 rm –v 改成find . -name "*.html" -mtime 1 -print0 |xargs -0 rm -v


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:11pm
栏目列表