困扰了好几天的多文件tar解包和date输出前一小时时间

博主分享在Linux系统中使用tar和date命令遇到的问题及解决办法。在解开几百个tar ball时,直接用tar xvf报错,最后借助awk解决;对于date命令,想输出上一小时时间,经多次尝试,发现使用date --date=\-1 hour\可行。

说来也真是的,linux也折腾了好几年,这两个最简单也最复杂的命令却没搞定,惭愧呀。

先说tar,这个命令我一直认为功能超强,这次却遇到了麻烦
一共有好几百tar ball,现在要全部解开,直接写tar xvf access_log*.tar 报错,记得有个-T参数可以输入一个文件列表,结果折腾了半天也没成功,最后只能求助于awk了,用了笨笨的办法解决。
# ll *.tar >dirlist
dirlist的内容:
-rw-r--r--    1 root     root     162498560 Nov 15 15:54 access_log.20041108.46.1.161845.tar
-rw-r--r--    1 root     root       102400 Nov 15 15:54 access_log.20041108.46.1.162221.tar
-rw-r--r--    1 root     root        20480 Nov 15 15:54 access_log.20041108.46.1.162400.tar
-rw-r--r--    1 root     root        71680 Nov 15 15:54 access_log.20041108.46.1.162849.tar
-rw-r--r--    1 root     root     14868480 Nov 15 15:54 access_log.20041109.46.2.095845.tar
.....................

# awk '{print $9}' dirlist >logfilelist
logfilelist的内容:
access_log.20041108.46.1.161845.tar
access_log.20041108.46.1.162221.tar
access_log.20041108.46.1.162400.tar
access_log.20041108.46.1.162849.tar
access_log.20041109.46.2.095845.tar
.............................

# awk '{print "tar vxf "$1}' logfilelist >tarxlog
# chmod +x tarxlog
# ./tarxlog

总算如愿。本来还想看看mc中行不行呢,无奈redhat as3默认没安装mc,作罢。

再来说date,又是一个再简单不过的命令,我想做的是输出上一小时的时间
也就是,现在的时间是Tue Nov 16 19:22:40 CST 2004
我要的输出时间是Tue Nov 16 18:22:40 CST 2004
找了半天,最流行的用法是date --date="yesterday"显示昨天的日期时间
于是顺藤摸瓜,找到
date --date="tomorrow"
date --date="hour"
大家可以试试都是什么,其中hour最好玩,竟然是输出一小时后的时间,而我要一小时前的时间,离胜利越来越近啦!

又试了很多参数,都是错的,终于,找到了!

date --date="-1 hour" 竟然行,哈哈
同理
date --date="-1 minute"
date --date="-1 day"

哈哈,这才是通用的做法呀。看到很多人在CU上问这种问题,终于找到了答案,幸福幸福。

转载于:https://www.cnblogs.com/samueltong/archive/2004/11/16/64516.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值