我正在尝试使用以下shell脚本打印所有文件的时间。但是我看到并不总是字节42到46是时间,因为它由于用户名和其他细节中的更多/更少字节而改变。还有另一种方式来获取时间吗?
#!/bin/sh
for file in `ls `
do
#echo `ls -l $file`
echo `ls -l $file | cut -b 42-46`
done
答案 0 :(得分:5)
使用awk。
尝试ls -l | awk '{ print $6 $7 $8}'
这将打印由空格分割的ls -l的第6,第7和第8个字段
如果字段不同,则更改数字以调整哪些字段。
答案 1 :(得分:2)
ls
的输出因文件的年龄而异。对于小于6个月大的文件,它是月,日,时间(小时和分钟);对于超过6个月大的文件,它会打印月,日,年。
stat
命令可用于获得更准确的时间。
例如,要打印上次修改的时间和某些文本文件的文件名,请尝试:
stat -c '%y %n' *.txt
从手册:
%x Time of last access
%X Time of last access as seconds since Epoch
%y Time of last modification
%Y Time of last modification as seconds since Epoch
%z Time of last change
%Z Time of last change as seconds since Epoch