摘要:在和下分别使用命令行或是界面操作方式复制文件时,看似是一样的,其区别在于新文件与源文件的创建修改和访问时间是否一致。最终的最终终于,我们帮助狗头人解决了这个小问题,世界回复了和平,狗头人又可以回洛斯里克城继续丢人了,赞美草履虫。
1:1 格拉摩根的洛斯里克城、有一个狗头人、名叫唯一丢人、是Paradox的伯爵、任天堂的主宰、育碧的bug、波兰蠢驴的打桩机。
1:2 他有三个妻、一名Windows、一名Linux、一名MacOS。
1:3 这狗每年从本城上到示罗、敬拜祭祀万军之草履虫.在那里有产品的两个需求、抓文件时间信息、系统移植、当草履虫的神谕。
1:4 狗头人每逢发薪水的日子、将工资分给他的和P社、任天堂、育碧、波兰蠢驴所生的儿女。
1:5 给P社的却是双份、因为他爱P社.无奈不做完任务草履虫不给狗头人放假。
综上,我们需要帮助狗头人在不同系统上拿到文件的时间信息,看起来很简单,但是却有一个类似于“ ”和“ ”的小细节是需要注意一下的。
在mac、linux 和 windows下分别使用命令行或是界面操作方式复制文件时,看似是一样的,其区别在于新文件与源文件的创建、修改和访问时间是否一致。
一、Windows首先,是在windows下,使用powershell命令行复制文件时是这样的:
cp . est.txt . est3.txt
其结果:
可以看到,新文件继承了源文件的修改时间,但是创建时间和访问时间都是其被复制创建时的时间;另一方面,源文件的创建时间和访问时间并没有发生变化。
使用Ctrl-C Ctrl-V手动复制文件时,结果和命令行是一致的。
二、Linux在Linux下,使用命令
cp test01.txt test02.txt
复制文件,再使用命令
stat test01.txt
查看文件信息,屏幕上会直接打印出所查询文件的信息:
其中,Access是文件访问时间,Modify是文件内容最后修改时间,Change是文件属性最后修改时间,分别对应时间戳atime/mtime/ctime。Change时间比较特殊,当改变文件的名称,大小和权限的时候Change时间才会改变。
但是,请注意,这里面并没有包含文件的创建时间,即crtime。查看源码可知,这是因为inode结构体中并没有crtime:
那么,若是想查看文件的创建时间,需要怎么做呢?
以test01.txt文件为例,首先,使用命令
stat test01.txt
查看,或是用
stat -c %i test01.txt
直接输出文件的inode号。
然后,使用命令
df test01.txt | sed -n "2{s/ .*$//;p}"
输出文件所在分区,最后通过debugfs就可以查询到文件的完整信息了:
debugfs -R "stat <1839472>" /dev/mapper/centos-root
通过该方法,再次查询新文件,可以发现,新文件的创建时间也就是被复制创建的时间:
在终端上与9:12用touch HelloDoge 创建一个文件,在9:13用mac自带的文本编辑修改文件,在9:14用文本编辑打开该文件但是未作修改,在9:15用命令cp HelloDoge HelloDoge2复制该文件。
如下图所示,新文件继承了源文件的打开(访问)时间,但是创建时间和修改时间都是其被复制创建时的时间;另一方面,源文件的创建时间、修改和访问时间均并没有发生变化。
有趣的来了,在MacOS中,用命令行复制和在finder中右键复制结果是不同,让我们尝试一下(兴奋)。
结果发现,被复制文件完美继承了源文件的所有时间信息诶!
买一送一时刻要注意,改变文件的修改时间时一定不要用vim,而要用其他方法(我在这里用了文本编辑器)。因为vim修改文件的原理是先创建一个.swp文件(其意即为swap交换),在w命令保存时,会用swp文件替换掉原文件,以此达到修改的目的。
总结系统 | 复制方法 | 创建时间 | 修改时间 | 访问时间 |
Windows | ||||
命令行 | 变为复制时间 | 继承 | 变为复制时间 | |
Ctrl + C | 变为复制时间 | 继承 | 变为复制时间 | |
Linux | 命令行 | 变为复制时间 | 变为复制时间 | 继承 |
MacOS | ||||
命令行 | 变为复制时间 | 变为复制时间 | 继承 | |
Ctrl + C | 继承 | 继承 | 继承 |
P.S. Linux中还有个Change time,意为其属性修改时间,复制时也和文件修改时间一样会变为文件复制时间。
最终的最终终于,我们帮助狗头人解决了这个小问题,世界回复了和平,狗头人又可以回洛斯里克城继续丢人了,赞美草履虫。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/61274.html
摘要:在和下分别使用命令行或是界面操作方式复制文件时,看似是一样的,其区别在于新文件与源文件的创建修改和访问时间是否一致。最终的最终终于,我们帮助狗头人解决了这个小问题,世界回复了和平,狗头人又可以回洛斯里克城继续丢人了,赞美草履虫。 1:1 格拉摩根的洛斯里克城、有一个狗头人、名叫唯一丢人、是Paradox的伯爵、任天堂的主宰、育碧的bug、波兰蠢驴的打桩机。1:2 他有三个妻...
摘要:在和下分别使用命令行或是界面操作方式复制文件时,看似是一样的,其区别在于新文件与源文件的创建修改和访问时间是否一致。最终的最终终于,我们帮助狗头人解决了这个小问题,世界回复了和平,狗头人又可以回洛斯里克城继续丢人了,赞美草履虫。 1:1 格拉摩根的洛斯里克城、有一个狗头人、名叫唯一丢人、是Paradox的伯爵、任天堂的主宰、育碧的bug、波兰蠢驴的打桩机。1:2 他有三个妻...
摘要:重点正常停止一个进程。三种模式的转换图命令模式用户刚刚启动,便进入了命令模式。此状态下敲击键盘动作会被识别为命令,而非输入字符。底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。 ...
摘要:第列表示该文件的所属组。表示该文件为套接字文件,用于进程间同信。所以目录的权限代表的含义为,普通文件的权限为,的值是可以自定义的,比如设定为,在创建目录或者文件时,默认权限分别为和。 cd命令 cd切换目录:cd +目标目录 当前目录:. 上一级目录:.. 返回家目录:cd ~/cd 空格 切换到上次所在目录:cd - 打印当前用户名字:whomi 打印当前用户的用户编号和用户组编...
阅读 2978·2023-04-26 03:05
阅读 3628·2021-11-15 11:37
阅读 1211·2021-10-13 09:39
阅读 2809·2021-09-10 10:50
阅读 1354·2019-08-30 13:09
阅读 1800·2019-08-30 13:05
阅读 716·2019-08-29 12:42
阅读 1278·2019-08-28 18:18