- 浏览: 589841 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
kangh:
转载的也拿出来 都不试一下 完全错误
Nginx+ffmpeg的HLS开源服务器搭建配置及开发详解 -
wangtxlz:
#cd builders/cmake#cmake .系统提示命 ...
crtmpserver流媒体服务器的介绍与搭建 -
hnraysir:
支持支持支持
手机Android音视频采集与直播推送,实现单兵、移动监控类应用 -
wuent:
把web服务器和php框架绑定到一起?真不建议这样。。。
Swoole(PHP高级Web开发框架) -
wuent:
有更详细的性能比较吗?php,python,java
PHP中的(伪)多线程与多进程
在windows下,一个文件有:创建时间、修改时间、访问时间。
而在Linux下,一个文件也有三种时间,分别是:访问时间、修改时间、状态改动时间。
而在Linux下,一个文件也有三种时间,分别是:访问时间、修改时间、状态改动时间。
两者有此不同,在Linux下没有创建时间的概念,也就 是不能知道文件的建立时间,但如果文件建立后就没有修改过,修改时间=建立时间;如果文件建立后,状态就没有改动过,那么状态改动时间=建立时间;如果文 件建立后,没有被读取过,那么访问时间=建立时间,因为不好判断文件是否被改过、读过、其状态是否变过,所以判断文件的建立时间基本上能为不可能。
如何查一个文件的三个时间呢?
先用下面的命令来建立一个文件
# date && echo "this is file be used test time of file" >filetime.txt && ll --full-time filetime.txt
Tue Aug 4 15:13:44 HKT 2009
-rw-r--r-- 1 root root 39 2009-08-04 15:13:44.000000000 +0800 filetime.txt
# date && echo "this is file be used test time of file" >filetime.txt && ll --full-time filetime.txt
Tue Aug 4 15:13:44 HKT 2009
-rw-r--r-- 1 root root 39 2009-08-04 15:13:44.000000000 +0800 filetime.txt
通过stat filename.txt来查,如:
# stat filetime.txt
File: `filetime.txt'
Size: 39 Blocks: 8 IO Block: 4096 Regular File
Device: 802h/2050d Inode: 17 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-08-04 15:13:44.000000000 +0800
Modify: 2009-08-04 15:13:44.000000000 +0800
Change: 2009-08-04 15:13:44.000000000 +0800
# stat filetime.txt
File: `filetime.txt'
Size: 39 Blocks: 8 IO Block: 4096 Regular File
Device: 802h/2050d Inode: 17 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-08-04 15:13:44.000000000 +0800
Modify: 2009-08-04 15:13:44.000000000 +0800
Change: 2009-08-04 15:13:44.000000000 +0800
说明:Access访问时间。Modify修改时间。Change状态改动时间。可以stat *查看这个目录所有文件的状态。
ctime=change time
atime=access time
mtime=modifiy time
atime=access time
mtime=modifiy time
因为这是一个新的文件(filetime.txt),没做过内容、属性的更改,也没读过这个文件,所以三者(访问时间、修改时间、状态改动时间)的时间是一致的,这时文件的修改时间与这三个时间是一样的,是没有疑问的。
1、访问时间,读一次这个文件的内容,这个时间就会更新。比如对这个文件运用 more、cat等命令。ls、stat命令都不会修改文件的访问时间。
2、修改时间,修改时间是文件内容最后一次被修改时间。比如:vi后保存文件。ls -l列出的时间就是这个时间。
3、状态改动时间。是该文件的i节点最后一次被修改的时间,通过chmod、chown命令修改一次文件属性,这个时间就会更新。
2、修改时间,修改时间是文件内容最后一次被修改时间。比如:vi后保存文件。ls -l列出的时间就是这个时间。
3、状态改动时间。是该文件的i节点最后一次被修改的时间,通过chmod、chown命令修改一次文件属性,这个时间就会更新。
另个除了可以通过stat来查看文件的mtime,ctime,atime等属性,也可以通过ls命令来查看,具体如下:
ls -lc filename 列出文件的 ctime (最后更改时间)
ls -lu filename 列出文件的 atime(最后存取时间)
ls -l filename 列出文件的 mtime (最后修改时间)
在linux中stat函数中,用st_atime表示文件数据最近的存取时间(last accessed time);用st_mtime表示文件数据最近的修改时间(last modified time);使用st_ctime表示文件i节点数据最近的修改时间(last i-node's status changed time)。
字段 说明 例子 ls(-l)
st_atime 文件数据的最后存取时间 read -u
st_mtime 文件数据的最后修改时间 write 缺省
st_ctime 文件数据的最后更改时间 chown,chmod -c
st_atime 文件数据的最后存取时间 read -u
st_mtime 文件数据的最后修改时间 write 缺省
st_ctime 文件数据的最后更改时间 chown,chmod -c
在linux系统中,系统把文件内容数据与i节点数据是分别存放的,i节点数据存放了文件权限与文件属主之类的数据。
另外,可以格式化输出文件的三种时间,如:
find . -name file -printf "%AY-%Am-%Ad %AH:%AM:%AS"
find . -name file -printf "%TY-%Tm-%Td %TH:%TM:%TS"
find . -name file -printf "%CY-%Cm-%Cd %CH:%CM:%CS"
find . -name file -printf "%TY-%Tm-%Td %TH:%TM:%TS"
find . -name file -printf "%CY-%Cm-%Cd %CH:%CM:%CS"
linux的ctime代表的是文件修改时间,如果文件被修改过就很难知道文件的创建时间,在某些特殊情况下,需要查看文件的创建时间,正常情况下查看文件的ctime是无法实现的。可以使用一个变通的方法来实现保留文件创建时间,但是同时也会牺牲一些其它特性。
可以在mount文件的时候使用参数-o noatime,来把系统更新atime的特性关闭。使用了noatime参数挂载后,在文件被修改后文件的atime是不会被改变的,使用stat查看到的atime就是文件的创建时间。
如:
# / sbin/mkfs -t ext3 /dev/ram10
# mount -t ext3 -o noatime /dev/loop0 /mnt/foo
# mount
/dev/ram10 on /mnt/foo type ext3 (rw,noatime)
# cd /mnt/foo
# touch filetime1.txt
# stat filetime1.txt
File: `filetime1.txt'
Size: 0 Blocks: 0 IO Block: 4096 Regular File
Device: 10ah/266d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-08-04 20:51:32.000000000 +0800
Modify: 2009-08-04 20:51:32.000000000 +0800
Change: 2009-08-04 20:51:32.000000000 +0800
File: `filetime1.txt'
Size: 0 Blocks: 0 IO Block: 4096 Regular File
Device: 10ah/266d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-08-04 20:51:32.000000000 +0800
Modify: 2009-08-04 20:51:32.000000000 +0800
Change: 2009-08-04 20:51:32.000000000 +0800
# echo foo.ok >> filetime1.txt
[root@logs-bak foo]# stat filetime1.txt
File: `filetime1.txt'
Size: 14 Blocks: 2 IO Block: 4096 Regular File
Device: 10ah/266d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-08-04 20:51:32.000000000 +0800
Modify: 2009-08-04 20:53:27.000000000 +0800
Change: 2009-08-04 20:53:27.000000000 +0800
[root@logs-bak foo]# stat filetime1.txt
File: `filetime1.txt'
Size: 14 Blocks: 2 IO Block: 4096 Regular File
Device: 10ah/266d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-08-04 20:51:32.000000000 +0800
Modify: 2009-08-04 20:53:27.000000000 +0800
Change: 2009-08-04 20:53:27.000000000 +0800
# cat filetime1.txt
foo.ok
#stat filetime1.txt
File: `filetime1.txt'
Size: 14 Blocks: 2 IO Block: 4096 Regular File
Device: 10ah/266d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-08-04 20:51:32.000000000 +0800
Modify: 2009-08-04 20:53:27.000000000 +0800
Change: 2009-08-04 20:53:27.000000000 +0800
foo.ok
#stat filetime1.txt
File: `filetime1.txt'
Size: 14 Blocks: 2 IO Block: 4096 Regular File
Device: 10ah/266d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-08-04 20:51:32.000000000 +0800
Modify: 2009-08-04 20:53:27.000000000 +0800
Change: 2009-08-04 20:53:27.000000000 +0800
# 通过以上实验可以看出文件的access time 是不变的。
接着向下多测试一下.
# vi filetime1.txt
# stat filetime1.txt
File: `filetime1.txt'
Size: 23 Blocks: 2 IO Block: 4096 Regular File
Device: 10ah/266d Inode: 14 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-08-04 20:55:05.000000000 +0800
Modify: 2009-08-04 20:55:05.000000000 +0800
Change: 2009-08-04 20:55:05.000000000 +0800
File: `filetime1.txt'
Size: 23 Blocks: 2 IO Block: 4096 Regular File
Device: 10ah/266d Inode: 14 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-08-04 20:55:05.000000000 +0800
Modify: 2009-08-04 20:55:05.000000000 +0800
Change: 2009-08-04 20:55:05.000000000 +0800
# chmod 777 filetime1.txt
# stat filetime1.txt
File: `filetime1.txt'
Size: 23 Blocks: 2 IO Block: 4096 Regular File
Device: 10ah/266d Inode: 14 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-08-04 20:55:05.000000000 +0800
Modify: 2009-08-04 20:55:05.000000000 +0800
Change: 2009-08-04 20:57:36.000000000 +0800
# stat filetime1.txt
File: `filetime1.txt'
Size: 23 Blocks: 2 IO Block: 4096 Regular File
Device: 10ah/266d Inode: 14 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-08-04 20:55:05.000000000 +0800
Modify: 2009-08-04 20:55:05.000000000 +0800
Change: 2009-08-04 20:57:36.000000000 +0800
可见,chmod后,Ctime的变化。
##############################################################
另外,从kernel2.6.29开,还默认集成了一个relatime的属性。可能是因为在文件读操作很频繁的系统
中,atime更新所带来的开销很大,所以很多SA都在挂装文件系统的时候使用noatime属性来停止更新atime。但是有些程序需要根据atime进行一些判断和操作,所以Linux就推出了一个relatime特性。
使 用这个特性来挂装文件系统后,只有当mtime比atime更新的时候,才会更新atime。事实上,这个时候atime和mtime已经是同一个东西 了。所以这个选项就是为了实现对atime的兼容才推出的。并不是一个新的时间属性。使用方法就是通过mount -o relatime /dir来挂装目录。
使 用这个特性来挂装文件系统后,只有当mtime比atime更新的时候,才会更新atime。事实上,这个时候atime和mtime已经是同一个东西 了。所以这个选项就是为了实现对atime的兼容才推出的。并不是一个新的时间属性。使用方法就是通过mount -o relatime /dir来挂装目录。
发表评论
-
select、poll、epoll之间的区别总结
2015-04-02 11:49 0select,poll,epoll都是IO多路复用的机制。I ... -
TCP状态转移图学习总结 (转)
2015-04-02 11:37 0TCP状态转移图学习总结 (转) 这是网络编程的基础,t ... -
(原)CentOS Linux 下安装Samba
2015-01-21 10:18 0一、Samba简介 samba ... -
Java 通过JNI调用C或者CPP代码
2014-10-22 18:20 1187网上搜罗到一个JNI的例子,不错。用cygwin的环境搞了下 ... -
CentOS配置mencoder和ffmpeg flv视频转码总结
2013-11-15 22:04 11521、安装yum的fpmforge源 rpm - ... -
用ffmpeg打造linux转码服务器
2013-11-15 21:54 1332linux在系统资源利用上确实要比windows强很多,所以 ... -
常用awk命令(转)
2012-11-16 13:54 952awk 用法:awk ' pattern {action ... -
php写后端运行程序总结
2012-03-21 23:44 20021、定时执行 就crontab了,li ... -
PHP调用Linux系统的常用函数
2012-03-14 00:10 0PHP调用Linux系统的常用函数 1、exec函数 ... -
删除Linux环境中的默认JDK安装版本
2012-02-29 19:23 1823下面以Fedora8为例: [root@fc8 bin ... -
linux tr命令详解
2012-02-28 22:06 1235通过使用 tr,您可以非常容易地实现 sed 的许多最 ... -
Linux2.2 修改LinuxThreads线程限制
2012-02-26 23:02 1781This document describes how to ... -
cannot restore segment prot after reloc错误的解决方法
2012-02-21 01:33 1602最近用到gearman。由于C语言的server一直编译不过去 ... -
Linux(CentOS)下更改/转移MySQL数据库目录
2012-02-19 00:16 1047由于MySQL的 ... -
centos安装中文支持
2012-02-15 16:39 3526默认安装为英文的 现在想设置成中文yumgroupinstal ... -
安装及配置eaccelerator-0.9.5加速PHP-5.2.1
2012-02-11 09:37 1173操作系统:Linux ... -
Linux EXT3文件系统下成功恢复误删的mysl数据库
2012-02-09 12:18 1313环境:CentOS 5.3 x86_64下,/dev/sd ... -
Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器[转载]
2012-02-09 12:18 1278[文章作者:张宴 本文版本:v6.3 最后修改:2010. ... -
Centos 开起自动启动设置
2012-02-06 09:08 1429CentOS下添加程序到服务并且设置服务自动启动的两种方法 ... -
linux增加根目录的磁盘空间(LVM)
2012-02-06 09:08 6181第一步:添加磁盘 第二步:使用Linux下的fdis ...
相关推荐
查询指定文件夹下,指定时间内改动过的文件,并按原来的目录将文件复制到当前目录下的指定文件夹中 调用前需打开文件修改源目录和目标目录 直接调用,则只查找当天内修改过的文件。 如果查询指定日期,需 cmd ...
1.QQ:513187410 2.保证无毒 3.简单,方便,实用 4.实例可以自行改用 5.如有非法,本人无法律责任,由改动代码人负责! 6.需要更多本人作品,查找标签“朱建强” 7.请下载,杀毒后再使用!
svn两个版本之间改动的文件列表 包括新增和更新的文件 用PYTHON写的脚本
VC判断文件是否被改动。
3、将改动的文件提交到版本库 svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关) 例如:svn commit -m “add test file for my test“ test.php 简写:svn ci
Delphi一句话修改文件的最后修改时间
一直以来都是使用Samba,前几天才发现原来还有一个这么好的工具,linux端不需要安装任何软件.不需要任何配置上的改动. 本人发布,必是精品!
此项目只用文本测试,项目为删除当前时间前第3天的文件,时间可以用“+/-天数”修改,直接改动配置文本即可
暂时没有3代的linux驱动,使用说明:三个ko文件放在/lib/modules/4.9.59-v7+/kernel/drivers/net/wireless/下,其中4.9.59-v7+表示内核版本,树莓派当前的系统就是在这个位置,如内核版本有变化,自行改动;...
叫你如何修改hosts文件。简单方便快捷,想看更多开发小技巧,请多多关注一下,谢谢!
Linux项目是一个开放源代码的操作系统项目,由林纳斯·托...安全性:Linux操作系统在安全性方面表现出色,具有强大的访问控制和安全机制。这使得Linux成为了一种非常适合用于服务器和安全敏感的应用场景的操作系统。
m 在还原文件时,把所有文件的修改时间设定为目前。 M 创建多卷的档案文件,以便在几个磁盘中存放。 v 周详报告tar处理的文件信息。如无此选项,tar不报告文件信息。 w 每一步都需求确认。 z 用gzip来压缩/解压缩...
此配置文件,作用在于路由,适用于windows和linux。只需要改动下文件路径和需要路由的域名
VB 判断文件是否被改动 VB 判断文件是否被改动
一个小工具,具体请看博文:https://blog.csdn.net/flydream3618/article/details/104700107
三.Linux下常用的工具软件..................................................................................................28 尾语.........................................................................
这种方式虽然在设置后能马上生效,但由于是直接修改目前运行内核中的网络参数,并未改动网络连接配置文件中的内容,因此在系统或网络服务重启后会失效。 持久生效的网络连接配置:此方式是对存放网络连接参数的配置文件...
5、程序开始监视该目录本身以及该目录下所有子目录和文件,若有任何变动(包括文件/文件夹重命名、移动、复制、删除、修改、新建等),则在屏幕打印“目录被改动![时间:(输出变动时间)]” 6、监视过程中,若用户...
步骤6: 改动HDFS文件,检查结果 实验2: 直接访问多个HDFS文件 步骤1: 配置目录/Directory对象,和实验1一样 步骤2: 创建外部表,包含多个位置文件 步骤3: 在HDFS生成一组文件 步骤4: 创建指向一组文件的位置文件 ...
附表1 文件修改状态控制清单 附表2 文件更改申请单 文件更改通知单 单位(部门): 编号: "序号 "文件名称 "所在章节 "原文内容 "修改后内容 "提出部门 " " " " " " " " " " " " " " " " " " " " " " "批准人 " "修订...