如何将文件夹所有文件的创建时间更改为当前时间?

如何将文件夹所有文件的创建时间更改为当前时间?

在Linux shell下,如何将文件夹所有文件的创建时间更改为当前时间?

答案1

原帖作者要求创建时间,但是杨伊恩博伊杰答案是基于命令touch设置修改使用权改变时间到当前时间。

正如 boehj 所说(在他的评论中),没有创建文件的时间......这对于大多数文件系统都是正确的,但在某些现代文件系统上(如ext4) 这创建(或者出生)文件的时间存储在索引节点

因此,我们可以严格按照问题标题给出更正确的答案:

cp -a  your-folder tmp-folder
rm -rf your-folder
mv tmp-folder your-folder

这将改变创建时间 (出生时间)更改为当前时间。这也会更新改变时间,但保持不变修改使用权次。

供参考,改变时间有时缩写为ctime,可能与创建时间(crtimebtime)。事实上,改变文件的时间是修改其对应的时间索引节点。因此,修改inode内容的命令chmodchattr设置改变时间到当前时间。

答案2

导航到相关文件夹,例如,~/Documents/myfiles。

$ cd ~/Documents/myfiles

然后做:

$ touch *

这会将修改时间更改为您执行该命令的时间。

显然,你可以根据你的使用情况使其更加具体,例如

$ touch *.doc

只会改变名称中带有字符串“.doc”的文件的修改时间。

答案3

在 Linux 中,如果你想在目录中递归地执行某些操作,或者你想对满足某些条件的文件应用某些操作,你应该find尝试xargs

触摸 ~/Documents/myfiles 中的所有文件(包括子目录中的文件)

find ~/Documents/myfiles -type f -print0 | xargs -0 touch

相关内容