我试图根据他们的修改/ lastchange时间戳比较两个时间文件,然后将文件复制到下面的一些文件夹代码
#!/bin/sh cd /sapmnt/audit/ echo $PWD t1= stat -c %z audit.log20151019115132 cd /var/log/audit/ echo $PWD t2= stat -c %z audit.log.3 echo $t1 echo $t2 if [ $t2 -nt $t1 ]; then echo "PASS" else echo "Fail" fi
输出:
/sapmnt/audit 2015-10-19 11:51:32.189657200 +0000 /var/log/audit 2015-10-20 17:25:01.000000000 +0000 PASS
问题是,如果我将条件交换到[ $t1 -nt $t2 ] ,它总是输出Pass。
-nt和-ot直接在文件上工作,而不是在值上。
#!/bin/sh t1='/sapmnt/audit//audit.log20151019115132' t2='/var/log/audit/audit.log.3' echo $t1 echo $t2 if [ $t2 -nt $t1 ]; then echo "PASS" else echo "Fail" fi
根据man test
FILE1-NOT FILE2
FILE1比FILE2更新(修改date)
-nt操作符将比较文件,而不是时间戳。