常用场景对文件状态的影响

在项目过程中要删除一些过期文件,但是到期了,有些文件居然没有被删除。后来发现,原来在转移文件的时候使用的mv命令会影响文件的Change Time,造成文件没有被认定为超时。为了避免类似问题发生,做了个简单的实验,结果如下:值得注意的是从结果看中可以看出当文件被下载时,Access Time也会改变。
touch Access Modify Change
echo   -         Modify Change
vim   Access  Modify Change
cat    Access  -          -
mv    -          -         Change
stat   -          -          -
nginx Access  -          -

过程如下:

[[email protected] teststat]# touch aaa.tmp
[[email protected] teststat]# stat aaa.tmp
  File: `aaa.tmp‘
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 22380566    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-02-01 09:18:57.000000000 +0800
Modify: 2016-02-01 09:18:57.000000000 +0800
Change: 2016-02-01 09:18:57.000000000 +0800
[[email protected] teststat]# echo "help">aaa.tmp
[[email protected] teststat]# stat aaa.tmp
  File: `aaa.tmp‘
  Size: 5         	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 22380566    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-02-01 09:18:57.000000000 +0800
Modify: 2016-02-01 09:19:21.000000000 +0800
Change: 2016-02-01 09:19:21.000000000 +0800
[[email protected] teststat]# vim aaa.tmp
[[email protected] teststat]# stat aaa.tmp
  File: `aaa.tmp‘
  Size: 13        	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 22380568    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-02-01 09:20:51.000000000 +0800
Modify: 2016-02-01 09:20:51.000000000 +0800
Change: 2016-02-01 09:20:51.000000000 +0800
[[email protected] teststat]# echo "echo re">>aaa.tmp
[[email protected] teststat]# stat aaa.tmp
  File: `aaa.tmp‘
  Size: 21        	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 22380568    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-02-01 09:20:51.000000000 +0800
Modify: 2016-02-01 09:21:20.000000000 +0800
Change: 2016-02-01 09:21:20.000000000 +0800
[[email protected] teststat]# cat aaa.tmp
hello world!
echo re
[[email protected] teststat]# stat aaa.tmp
  File: `aaa.tmp‘
  Size: 21        	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 22380568    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-02-01 09:22:05.000000000 +0800
Modify: 2016-02-01 09:21:20.000000000 +0800
Change: 2016-02-01 09:21:20.000000000 +0800
[[email protected] teststat]# mv aaa.tmp bbb.tmp
[[email protected] teststat]# stat bbb.tmp
  File: `bbb.tmp‘
  Size: 21        	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 22380568    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-02-01 09:22:05.000000000 +0800
Modify: 2016-02-01 09:21:20.000000000 +0800
Change: 2016-02-01 09:22:28.000000000 +0800
然后用nginx下载文件,再次查看文件状态
[[email protected] teststat]# stat bbb.tmp
  File: `bbb.tmp‘
  Size: 21        	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 22380568    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-02-01 09:42:05.000000000 +0800
Modify: 2016-02-01 09:21:20.000000000 +0800
Change: 2016-02-01 09:22:28.000000000 +0800

  

时间: 2024-10-12 23:35:53

常用场景对文件状态的影响的相关文章

Git——常用场景解析

总结:本篇文章从初识GitHub.Git,实践GitHub的五种常用场景,分别是:git for windows安装,git配置,克隆远程代码到本地,上传本地代码到远程以及Git的常用指令.相信James已经尝到了Git的滋味. Git是什么?是版本控制工具,是协同开发的利器. "版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统:对于软件开发领域来说,版本控制是最重要的一环." 如何使用呢?首次接触Git时,James认为:大可不必去弄清楚Git的工作原理,

掌握Git撤销操作,随心所欲控制文件状态

本文主要讨论和撤销有关的 git 操作.目的是让读者在遇到关于撤销问题时能够方便迅速对照执行解决问题,而不用去翻阅参数繁多的 git 使用说明. 一开始你只需了解大致功能即可,不必记住所有命令和具体参数.事实上,如果没有经过反复多次的操作,这些没血没肉的命令是很难被全部记清楚的,就算现在记住了,也会很快遗忘(天赋异禀,过目不忘者除外).建议读者在遇到特定问题时对照场景操作,多用几次自然就记住了. 首先,我们再看看上一篇文章中的这张图: git 命令和文件状态转换 这张图能让你一目了然的看到各种命

git常用命令常用场景

在使用git之前,一直用的是svn版本管理:与svn最大不同的是,git有两个仓库,一个是本地仓库,一个是服务器上共享的仓库:本地仓库是每个开发者自己独有的,即使commit提交也只是提交到本地仓库:这只是git流行起来的一个优势之一,另外linux作者开发的这套版本管理工具,很接地气,也是流行起来的一大亮点.扯了这么多没用的,言归正卷,那么在日常开发工作中,哪些git命令是我们常用到的呢?下面就说说几个常用命令的常用场景,至于这些命令详细使用就不在本文讨论之内. 1.git命令别名 使用过gi

Linux 常用命令之文件和目录

1. cd 命令格式:cd  [dirName](cd和目录之间使用空格隔开) 作用:切换当前目录至dirName. 实例: cd /home 切换当前目录到/home (查看当前目录命令为pwd) cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd ~ 进入个人的主目录 2. ls 命令格式:ls [选项] [目录名] (目录名为空时表示当前目录) 作用: 查看目录中的文件 常用选项: -a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件. -l 除了文件名之外,

linux下常用的查找文件命令

一.常用的查找命令 我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which       查看可执行文件的位置 whereis    查看文件的位置 locate       配 合数据库查看文件位置 find          实际搜寻硬盘查询文件名称 二.which命令的常用方法 which是通过 PATH环境变量到该路径内查找可执行文件,所以基本的功能是寻找可执行文件: [[email protected] ~]# which cat /bin/c

转载:Linux 下C编程常用的头文件

头文件主目录include 头文件目录中总共有32个.h头文件.其中主目录下有13个,asm子目录中有4个,linux子目录中有10个,sys子目录中有5个.这些头文件各自的功能如下,具体的作用和所包含的信息请参见第14章. <a.out.h>:a.out头文件,定义了a.out执行文件格式和一些宏. <const.h>:常数符号头文件,目前仅定义了i节点中i_mode字段的各标志位. <ctype.h>:字符类型头文件,定义了一些有关字符类型判断和转换的宏. <

cocos2dx 游戏开发中常用场景切换方式以及特性

runWithScene(CCScene* scene):启动游戏,并运行scene 场景.这个方法在主程序启动时第一次启动主场景时调用. replaceScene(CCScene* scene):直接使用传入的scene 替换当前场景来切换画面,当前场景将被释放.这是切换场景时 最常用的方法. pushScene(CCScene* scene):在不释放旧场景内存的情况下运行新场景,推进新场景相当于在当前可见的纸上再放一张纸,而之前的纸位置何持不变.适用情况: 1.推进一个经常被用到的场景,例

LogMiner常用场景

1 LogMiner常用场景 1.1 用LogMiner跟踪特定用户所做的更改 本节例子,查出用户joedevo在特定时间范围内对数据库所做的所有操作,步骤如下: 1.创建LogMiner字典 使用LogMiner分析joedevo相关的数据,必须在joedevo对它的所有表做任何的更改操作前创建LogMiner字典或者直接使用在线字典,本例使用已提取到重做日志文件中的LogMiner字典. 2.添加重做日志文件 在joedevo对数据库做了一些更改操作之后,可以指定对应的重做日志文件来分析:

Linux常用命令系列——文件和目录操作命令(ls)

文章目录: 1.语法 2.选项 3.参数 4.实例 5.ls -F命令的扩展知识 6.ls 命令输出内容的属性 ls命令 ls(可以理解为list的缩写)命令,其功能是显示目录下的内容及其相关属性信息,在Linux中是使用率较高的命令. 1.语法 ls [选项] [参数] 2.选项 -a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为隐藏,不会列出): -A:显示除隐藏文件“.”和“..”以外的所有文件列表: -C:多列显示输出结果.这是默认选项: -l:与“-C”选项功能相反,所