在日常多人协作时,最开始习惯看文件夹更新时间来查看是否有更新,但发现总是不能如实反映情况, 文件夹日期有时变,有时不变。很是困惑,就来探究下。 比如,起始状态: ysx@localhost:~/trash/ehbio$ ls -ltrtotal 0drwxr-xr-x. 2 ysx ehbio 6 Jan 7 10:48 webserverdrwxr-xr-x. 2 ysx ehbio 6 Jan 7 10:48 traindrwxr-xr-x. 2 ysx ehbio 6 Jan 7 10:48 bioinfoservice 在 ysx@localhost:~/trash/ehbio$ cat 再查看下文件夹日期有没有变化,发生变化了,为我们新增文件的日期。 ysx@localhost:~/trash/ehbio$ ls -ltr webserver/record.md-rw-r--r--. 1 ysx ehbio 74 Jan 7 10:49 webserver/record.mdysx@localhost:~/trash/ehbio$ ls -ltrtotal 0drwxr-xr-x. 2 ysx ehbio 6 Jan 7 10:48 traindrwxr-xr-x. 2 ysx ehbio 6 Jan 7 10:48 bioinfoservicedrwxr-xr-x. 2 ysx ehbio 22 Jan 7 10:49 webserver 那么再继续追加内容,还是使用 ysx@localhost:~/trash/ehbio$ cat 这时再看文件夹日期,发现与文件不同步了。文件日期 ysx@localhost:~/trash/ehbio$ ls -ltr webserver/record.md-rw-r--r--. 1 ysx ehbio 148 Jan 7 10:52 webserver/record.mdysx@localhost:~/trash/ehbio$ ls -ltrtotal 0drwxr-xr-x. 2 ysx ehbio 6 Jan 7 10:48 traindrwxr-xr-x. 2 ysx ehbio 6 Jan 7 10:48 bioinfoservicedrwxr-xr-x. 2 ysx ehbio 22 Jan 7 10:49 webserver 这是为什么呢? 文件内容更新了,文件夹时间戳却未变。那么件夹的更新日期是什么决定的呢? 我们在使用 ysx@localhost:~/trash/ehbio$ less webserver/total 4drwxr-xr-x. 2 ysx ehbio 22 Jan 7 10:49 ./drwxr-xr-x. 5 ysx ehbio 70 Jan 7 10:48 ../-rw-r--r--. 1 ysx ehbio 148 Jan 7 10:52 record.md 而文件夹确实是类似文本文件的方式存储的,文件夹可以看做 webserver文件夹的文本存储(第一例为inode,第二列是文件名)2763934 . 2764125 .. 104480 record.md 而我们每次追加文件内容都未改变 # -i可查看文件的inodeysx@localhost:~/trash/ehbio$ ls -ai webserver/2763934 . 2764125 .. 104480 record.mdysx@localhost:~/trash/ehbio$ cat 关于文件夹日期更新的问题算是解决了。 另一个问题是,虽然同事的文件更新了,文件夹时间戳一般不改变。但我发现我每次更新完文件内容,文件夹的日期却都会变化,看上去与前面的认知矛盾。想了下,更新时用到的文本编辑器不用,问题是否可能出在 大家注意这里面 ysx@localhost:~/trash/ehbio$ ls -ltr total 0drwxr-xr-x. 2 ysx ehbio 6 Jan 7 10:48 traindrwxr-xr-x. 2 ysx ehbio 6 Jan 7 10:48 bioinfoservicedrwxr-xr-x. 2 ysx ehbio 22 Jan 7 10:49 webserverysx@localhost:~/trash/ehbio$ ls -ltr webserver/record.md -rw-r--r--. 1 ysx ehbio 212 Jan 7 11:03 webserver/record.md# -i可查看文件的inodeysx@localhost:~/trash/ehbio$ ls -i webserver/record.md104480 webserver/record.mdysx@localhost:~/trash/ehbio$ vim webserver/record.mdysx@localhost:~/trash/ehbio$ ls -ltr webserver/record.md -rw-r--r--. 1 ysx ehbio 215 Jan 7 11:06 webserver/record.mdysx@localhost:~/trash/ehbio$ ls -ltrtotal 0drwxr-xr-x. 2 ysx ehbio 6 Jan 7 10:48 traindrwxr-xr-x. 2 ysx ehbio 6 Jan 7 10:48 bioinfoservicedrwxr-xr-x. 2 ysx ehbio 22 Jan 7 11:06 webserver# -i可查看文件的inodeysx@localhost:~/trash/ehbio$ ls -i webserver/record.md2465326 webserver/record.md 确实是 在另外一个情况下,如果我们对文件夹无可写权限,但对该文件夹内的文件有可写权限时, ysx@localhost:~/trash/ehbio$ chmod a-w webserver/ysx@localhost:~/trash/ehbio$ ls -ltrtotal 0drwxr-xr-x. 2 ysx ehbio 6 Jan 7 10:48 traindrwxr-xr-x. 2 ysx ehbio 6 Jan 7 10:48 bioinfoservicedr-xr-xr-x. 2 ysx ehbio 22 Jan 7 11:06 webserver# 写不进去,无权限ysx@localhost:~/trash/ehbio$ vim webserver/a# 可以修改, 但没有新文件产生ysx@localhost:~/trash/ehbio$ vim webserver/record.md ysx@localhost:~/trash/ehbio$ ls -ltr webserver/record.md-rw-r--r--. 1 ysx ehbio 249 Jan 7 11:15 webserver/record.md# 文件夹时间戳未变ysx@localhost:~/trash/ehbio$ ls -ltrtotal 0drwxr-xr-x. 2 ysx ehbio 6 Jan 7 10:48 traindrwxr-xr-x. 2 ysx ehbio 6 Jan 7 10:48 bioinfoservicedr-xr-xr-x. 2 ysx ehbio 22 Jan 7 11:06 webserver# 文件inode也未变ysx@localhost:~/trash/ehbio$ ls -i webserver/record.md2465326 webserver/record.md 设计软件时,需要考虑的问题和情况还是挺多的。看上去挺简单的事情,里面说不准有多少”坑”需要注意,写网站这样,写工具也这样,作分析也是这样。 如果有需求,欢迎联系我们。
Linux更多阅读
|
|