LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1755|回复: 20

前天如何表示?(承蒙各位大力支持,已经搞定,特把结果写出来)

[复制链接]
发表于 2005-6-20 15:18:57 | 显示全部楼层 |阅读模式
我想自动上传一个前天的文件,问一下在shell中如何表示?
发表于 2005-6-20 17:01:34 | 显示全部楼层
前天创建?还是前天创建后就没再用过,没再改过属性之类的!
linux有三个文件戳
atime -file access
ctime -file's status
utime -file's data
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-20 21:43:13 | 显示全部楼层
我的意思是:date +%G%m%d 显示当天日期为20050620  那我如何把这个命令改一下能显示20050618呢? 让他显示前天的日期?请大师们指教。谢谢。
回复 支持 反对

使用道具 举报

发表于 2005-6-20 21:56:41 | 显示全部楼层
#date -d "last day"
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-20 22:14:00 | 显示全部楼层
#date -d "last day" 后显示
日  6月 19 22:10:13 CST 2005
如何把结果显示为:20050619 因为情况特殊。谢谢大家
回复 支持 反对

使用道具 举报

发表于 2005-6-20 23:12:51 | 显示全部楼层
哦这样啊
像我这样的话就先把环境设置为英文的  /etc/sysconfig/i18n这里面设置  export LC_ALL=C
方法一:
#date +%D -d "last day"|gawk -F/ '{print $1,$2,$3}'
结果是  05 31 05这种
第二种:
#date +%Y%m%d "last day"|gawk -F/  '{print $1,%2,%3}'
回复 支持 反对

使用道具 举报

发表于 2005-6-21 00:35:33 | 显示全部楼层
Post by txkss
哦这样啊
像我这样的话就先把环境设置为英文的  /etc/sysconfig/i18n这里面设置  export LC_ALL=C
方法一:
#date +%D -d "last day"|gawk -F/ '{print $1,$2,$3}'
结果是  05 31 05这种
第二种:
#date +%Y%m%d "last day"|gawk -F/  '{print $1,%2,%3}'

这都是昨天吧?而不是“前天”。。。


  1. #!/bin/bash
  2. now=$(date +%s)
  3. befyest=$(($now-86400*2))
  4. pres=$(date -d "1970-01-01 UTC $befyest seconds" +"%Y%m%d")
  5. echo $pres
复制代码

这个小脚本可以表示前天。利用了%s和utc时间戳。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-21 09:33:01 | 显示全部楼层
这个脚本执行后显示前天20050619 。完全正确。但是问题在于我想上传一个前天的文件,而且这个文件是每天生成的。象这样webgate20050619.log。每天生成这样的日期文件。我如何来表示这样的文件。关键就是这个日期我在shell中如何表示?谢谢版主们的指教。
回复 支持 反对

使用道具 举报

发表于 2005-6-21 10:01:48 | 显示全部楼层
Post by maowei
这个脚本执行后显示前天20050619 。完全正确。但是问题在于我想上传一个前天的文件,而且这个文件是每天生成的。象这样webgate20050619.log。每天生成这样的日期文件。我如何来表示这样的文件。关键就是这个日期我在shell中如何表示?谢谢版主们的指教。


这个简单阿,
  1. webgate"$pres".log
复制代码
就行了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-21 11:07:29 | 显示全部楼层
搞定。下面就去实施每天自动上传到windows机器中的代码了。谢谢各位!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表