在Linux shell下,如何将文件夹所有文件的创建时间更改为当前时间?
答案1
原帖作者要求创建时间,但是杨伊恩和博伊杰答案是基于命令touch
设置修改,使用权和改变时间到当前时间。
正如 boehj 所说(在他的评论中),没有创建文件的时间......这对于大多数文件系统都是正确的,但在某些现代文件系统上(如ext4) 这创建(或者出生)文件的时间存储在索引节点。
因此,我们可以严格按照问题标题给出更正确的答案:
cp -a your-folder tmp-folder
rm -rf your-folder
mv tmp-folder your-folder
这将改变创建时间 (出生时间)更改为当前时间。这也会更新改变时间,但保持不变修改和使用权次。
供参考,改变时间有时缩写为ctime
,可能与创建时间(crtime
或btime
)。事实上,改变文件的时间是修改其对应的时间索引节点。因此,修改inode
内容的命令chmod
或chattr
设置改变时间到当前时间。
答案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