LINUX如何修改文件的创建和修改时间_LINUX文件时间属性修改教程

有一次,我记得维护一台充满旧日志文件的旧服务器。
在那一天,您需要测试自动清理脚本,以便它实际上不会清理超过 3 0 天的日志文件。
我手头没有很多旧文件,所以我有一个想法使用 touch 命令“创建”一些“旧文件”。

我打开终端,切换到日志文件的目录并输入命令:touch -d "2 02 3 -01 -01 00:00" .log。
该命令的含义是所有以 .log 结尾的文件都将更新到 2 02 3 年 1 月 1 日。
不久之后将在 2 02 3 年 1 月 1 日更改为零时。
我发现这些.log文件中的时间实际上变成了我指定的时间。
然后我运行清理脚本,正如预期的那样,它“清理”了“旧文件”。
这个小技巧让我顺利完成了测试,也让我对touch命令有了更深入的了解。

等一下,如果有一天我需要同步多个文件的时序。
您必须手动将它们一一更新。
多少麻烦?有没有办法批量修改?

如何修改文件的 “创建时间” 和 “修改时间” (macOS, Linux, Windows)

说实话,在不同的系统中更改文件是一个非常有趣的时刻。
这确实取决于具体情况。
第一份关于 macOS 的报告。
在Finder中查看文件信息非常方便,但默认只有几分钟。
如果你想改变它,请相信自己。
我使用了一个名为 ABetterFinderAttributes 的小工具来更改 Mac 上的时间文件。
安装完这些后,右键单击该文件即可更改创建时间和修改时间。
这比乱搞命令行要好得多。
但是,如果使用命令行,stat -x 可以看到一切,包括Access、Modify、Change和Birth,但是改变创建时间呢? macOS 默认情况下处于锁定状态。
我尝试了几次,但没有成功。
唯一的技巧是先更改时间,然后访问文件,以便系统在创建时自动识别新文件。
这个技巧很酷,但是使用时必须小心,以免弄乱系统的时间。

看看Linux,它开放得多。
使用该命令非常容易。
你可以看到文档的所有信息,包括所谓的“创建时间”。
Linux系统默认有三个主要时刻:Access(访问时间)、Modification(修改时间)、Birth(出生时间,也就是创建时间)。
文件变更是什么时候强制变更的?只需触摸命令即可。
如果你想改变创建时间,你不能在Linux中这样做。
和macOS一样,是时候先换系统了。
我之前在安理会曾做过一次改变。
两年前我第一次使用它时我命令移动时间,然后我触摸了面板。
因此,该文件是在两年前创建的。
这个技巧在Linux上有效,在macOS上也同样有效,但是macOS系统时间更改后,文件创建时间将是系统时间更改时的时间,而不是您触摸文件的时间。
最后,我们来谈谈Windows。
有多种方法可以更改其中的文件。
属性文件中的所有信息,创建时间、修改时间、访问时间都列出来了。
但Windows中的“访问时间”有点奇怪。
每次打开并查看文件时,时间都会更新。
而且,它很固执,不让你立刻改变。
您需要编辑属性文件中的“更改访问时间选项”。
如果你当时确实想更改文件,Windows中有很多工具。
我使用了第三方工具,可以通过搜索找到。
更换非常方便。
您可以通过右键单击来更改指示。
不过现在已经很少使用了,因为在Windows 1 0和1 1 中,可以直接在命令行上更改,可以使用CMD或Powershell。
要在CMD中更改时间文件,必须先安装插件,在右键菜单中添加“修改文件时间”选项。
点击它即可填写时间。
它与Powershell类似,但命令更丰富。

说白了,在改变时间表的时候,系统有很多限制,尤其是创建时间,几乎是不可能改变的。
可以使用命令行更改时间指示,实际上是对时间和访问时间的修改。
如果要更改创建时间,请先更改时间系统。
这个秘籍在macOS和Linux上都可以使用,但具体效果可能略有不同。
Windows系统中有很多工具,但是改变创建时间也需要第一次改变。
经过多年的工作,我发现使用第三方工具或命令行并不如正确的系统更改时间那么快,当然也更危险。
所以,什么时候更改文件,要视情况而定。
不要无意中更改系统时间,否则如果调整不正确,系统会崩溃。

Linux系统如何修改文件的时间

哦,既然我们说的是Linux系统上修改文件时间的touch命令,我已经用过好几次了。
其实这个命令操作起来很简单,但是需要注意细节。
例如,如果要更改特定文件的创建时间和上次访问时间,可以使用此命令。

这个触摸命令有几个非常有用的参数。
例如,-d 参数用于指定日期和时间。
您可以通过直接输入要修改的时间字符串来修改文件时间。
例如,如果你想把系统上的一些.sh文件的时间调回3 个月,你就必须执行以下操作:
这是我当时所做的:首先进入系统,然后输入命令行:
[root@casetest] touch -d "1 0/1 3 /2 01 3 " .sh
看,“1 0/1 3 /2 01 3 ”​​是我指定的日期。
这意味着它将更改所有 .sh 文件的时间。
截至2 01 3 年1 0月1 3 日。

然后我再看了一下,发现文件里的时间居然变了。

[root@casetest] ls -l 总计 2 8 drwxr-xr-x 2 根 根 4 09 6 一月 9 1 5 :4 7 1 3 3 3 -rwxrwxr-x 1 oracle oinstall 8 1 4 3 1 0 月 1 3 日 00:00 3 .sh drwxr-xr-x 2 根 根 4 09 6 一月 9 1 5 :4 9 4 4 4 -rw-r--r-
1 root root 0 Jan 9 1 4 :4 1 4 .sh -rwxr-xr-x 1 root root 8 1 4 3 Jan 9 1 4 :4 7 7 7 .sh -rwxrwxr-x 1 root root 5 4 Jan 9 1 6 :03 find.sh
看,.sh 文件中的时间已更改为 1 0 月 1 3 日。

此外,您还可以更准确地设置时间,例如使用1 2 小时或2 4 小时制,或者指定是上午还是下午。
例如,要将特定文件的时间更改为 2 000 年 5 月 6 日下午 6 :03 ,您可以执行以下操作:
touch -d "6 :03 pm 05 /06 /2 000" file
这将根据您的设置更改文件的时间。
这些触摸命令非常方便,但说实话,使用它们时有时会有点混乱。
比如,当时我不知道如何计时,所以我只能慢慢导航。