我在c:/users/text.txt
中有一个文件
text.tx
没有文件创建日期,如何获取text.txt
创建日期并使用Shell脚本减去-4:00
last_update=$(stat -c "%n %y" $file)
这句话给了我文件创建的日期。我如何从中减去-4:00?
假设假设text.txt
文件是在04/04/2019 4:00
创建的,我想将其更改为04/04/2019 12:00
。
答案 0 :(得分:2)
%y
不是创建的,而是最后的修改日期。
获取自大纪元以来的秒数,并减去4小时,然后使用date
将其转换为可读格式,使用touch
来更改文件的访问和修改时间:
$ stat file
File: file
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: b31ch/45852d Inode: 65386 Links: 1
Access: (0600/-rw-------) Uid: (10138/ u0_a138) Gid: (10138/ u0_a138)
Access: 2019-04-04 12:34:56.172954982 +0300
Modify: 2019-04-04 12:34:56.172954982 +0300
Change: 2019-04-04 12:34:56.172954982 +0300
Birth: -
$
$ stat -c '%y' file
2019-04-04 12:34:56.172954982 +0300
$ stat -c '%Y' file
1554370496
$ date -d @$(( $(stat -c '%Y' file) - 4*60*60 ))
Thu Apr 4 08:34:56 +03 2019
$ touch -d "$( date -d @$(( $(stat -c '%Y' file) - 4*60*60 )) )" file
$
$ stat file
File: file
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: b31ch/45852d Inode: 65386 Links: 1
Access: (0600/-rw-------) Uid: (10138/ u0_a138) Gid: (10138/ u0_a138)
Access: 2019-04-04 08:34:56.000000000 +0300
Modify: 2019-04-04 08:34:56.000000000 +0300
Change: 2019-04-04 12:37:14.492954929 +0300
Birth: -