shell习题5

shell习题5

题:备份某个文件下所有txt文件,进行打包备份,还原操作

目录下创建10个文件
[root@localhost test]# ls file/
10.txt 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt

[root@localhost test]# ls
123_20211231100740 20211231100740.zip file

[root@localhost test]# cat bak.sh

#!/bin/bash
#判断当前文件下是否有file.tar.gz
file=`ls |grep file.tar.gz|wc -l` 
#如果有file.tar.gz这个文件,则对文件进行重命名操作,没有则睡眠5s
if [ $file -eq 0 ];then
            sleep 5
    else
            mv file.tar.gz date_file.tar.gz
fi
#查找/home/yy/test/file/ 文件下所有txt文件,把名字导入到list.txt文件
find /home/yy/test/file/ -type f -name '*.txt'|awk -F '/' '{print $6}' > list.txt 
#首先对所有的list文件进行备份
for f in `cat list.txt`
    do
            mv file/$f file/$f.bak
done
#定义当前时间为变量date
date=`date +%Y%m%d%H%M%S` 
#创建当前时间的变量为目录
mkdir ./123_$date
#把file下备份的txt文件,移动到以时间命名的目录下
for file in `cat list.txt`
    do
            mv file/$file.bak 123_$date
done 
#对时间目录进行打包
tar -czf $date.tar.gz 123_$date
#删除时间目录,清理文件
rm -rf 123_$date

#解压文件
tar -zxf $date.tar.gz    
#还原所有txt文件
for restore in `cat list.txt`
    do
            mv 123_$date/$restore.bak file/$restore
done
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值