假设我想将文件(特别是 docx、pdf)的创建日期改为过去。可以从终端执行此操作吗?
答案1
为了更改文件的访问和修改时间,您可以使用以下命令:
touch -t <desireddate> <file>
从man touch
格式上看如下:
-t STAMP 使用 [[CC]YY]MMDDhhmm[.ss] 代替当前时间
http://manpages.ubuntu.com/manpages/eoan/man1/touch.1.html
guiverc@d960-ubu2:~$ touch file
guiverc@d960-ubu2:~$ touch -t 7001012005 file
guiverc@d960-ubu2:~$ stat file
File: file
Size: 0 Blocks: 16 IO Block: 4096 regular empty file
Device: 37h/55d Inode: 574182 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ guiverc) Gid: ( 1000/ guiverc)
Access: 1970-01-01 20:05:00.000000000 +1000
Modify: 1970-01-01 20:05:00.000000000 +1000
Change: 2019-06-04 22:46:02.178960273 +1000
Birth: -
不幸的是,您无法使用触摸命令更改文件的创建日期时间。
答案2
按照前面所述操作即可解决大部分问题。如果需要更改创建日期/时间,请将文件移到一边,然后将搁置的文件复制到原始名称,最后删除搁置的原始文件。
当我无法使用 root 权限(即 sudo)时,我曾经使用过这种技术来获取文件所有权。
答案3
您有时可能需要的另一个选项是设置时间戳以匹配另一个文件的时间戳。
假设您有文件 A 并且想要设置它的时间戳以匹配文件 B 的时间戳,您可以使用:
touch --reference=fileB fileA
或者-r
简称为:
touch -r fileB fileA