使用ext4
文件系统,我能够使用此处的方法读出文件的创建时间。结果,我确实得到了一个表,其中包含所crtime
讨论的 inode(相应文件)的(创建时间)。
让我感到困惑并且我无法在 中找到答案的man debugfs
是为什么它向我显示了 2 行crtime
,而且甚至不是同一时间。
这是我得到的输出
[user ~] $ sudo debugfs -R "stat <274742>" /dev/sda2
debugfs 1.43.1 (08-Jun-2016)
Inode: 274742 Type: regular Mode: 0644 Flags: 0x80000
Generation: 3666549610 Version: 0x00000000:00000001
User: 1000 Group: 1000 Project: 0 Size: 0
File ACL: 0 Directory ACL: 0
Links: 0 Blockcount: 0
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x57b4c632:1e30ee34 -- Wed Aug 17 22:16:50 2016
atime: 0x57b4c4c0:afa082b0 -- …
Run Code Online (Sandbox Code Playgroud) #!/bin/sh
for f in *.png
do
echo mv -n "$f" "$(date +%Y%m%d-%H-%M-%S)_$f"
done
Run Code Online (Sandbox Code Playgroud)
我想用 ( ls -lt --full-time
) 中所述的时间戳重命名几个文件,但是当我运行上面的代码时,名称使用当前日期/时间或修改时间。我想要 yymmdd 格式的年、月、日。