应用于目录时,“触摸”命令有什么作用?
$ mkdir test
$ ls -l test
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test
$ touch test
$ ls -l
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test
应用于目录时,“触摸”命令有什么作用?
$ mkdir test
$ ls -l test
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test
$ touch test
$ ls -l
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test
Answers:
顶部的示例不清楚“ touch”设置目录的时间(清单中的新时间与原始时间相同,只是因为创建目录后不久就触摸了)。是的,文档中“ FILE”的定义确实包含目录,因此您可以使用touch更改其时间戳,但是...
在某些情况下,即使您有权执行其他操作,也无法更改目录的时间戳(对于某些类型的远程安装目录)。例如,此NFS安装:
$ touch -d "2014-07-02 12:15" /public/test.dir
touch: setting times of ‘/public/test.dir’: Operation not permitted
另外,您可能会遇到某些服务器不支持某些旧日期的问题,例如:
$ mkdir /Acer/kopies/test.dir
$ ls -ald /Acer/kopies/test.dir
drwxr-xr-x 2 mark aitchison 0 Mar 11 17:40 /Acer/kopies/test.dir
这有效:
$ touch "2014-04-01 00:00" /Acer/kopies/test.dir
$ ls -ald /Acer/kopies/test.dir
drwxr-xr-x 2 mark aitchison 0 Apr 1 2014 /Acer/kopies/test.dir
这将在本地目录上工作,但在Samba挂载下给出了一个奇怪的日期:
$ touch -d "1955-07-02 12:15" /Acer/kopies/test.dir
$ ls -ald /Acer/kopies/test.dir
drwxr-xr-x 2 mark aitchison 0 Nov 26 60410 /Acer/kopies/test.dir
~~~~~~~~~~~~~
该问题的直接原因是默认时间分辨率ls -l
为分钟,因此在同一分钟内触摸的文件系统条目将在默认ls -l
输出中显示完全相同的事实。
解决方案在/superuser/355318/how-to-have-linux-ls-command-show-second-in-time-stamp中进行了描述,
基本上涉及运行ls -l --time-style=full-iso
。