shell脚本将大小不变的文件移走,留下仍在写入的文件

背景介绍:
程序录制的视频放在/dev/shm下,文件命名格式以.mp4结尾,目的是将录制完毕的视频文件拷贝到别的目录下,保留仍在写入的视频文件。
话不多说,直接上脚本:

#!/bin/bash

while [ true ]; do
#相隔5s获取/dev/shm目录下所有mp4文件,分别进行记录
du -s /dev/shm/*.mp4 > file1.txt
sleep 5
du -s /dev/shm/*.mp4 > file2.txt

#获取file1.txt file2.txt 文件里相同的行,并截取视频文件的名字,重新覆盖到rsync_file里
file_to_mv=$(awk '{if(ARGIND==1) {val[$0]}else{if($0 in val) print $0}}' file1.txt file2.txt | awk -F'/' '{print $4}')
echo "$file_to_mv" > rsync_file

#对rsync_file进行判空,非空情况下才进行视频转移操作
if [ ! -s rsync_file ];then
    echo "no files to move"
else
    for rfile in $(cat rsync_file)
    do
        rsync -avzp $rfile /root/mp4v2
#        sed -e "/ $rfile/d" rsync_file
        rm $rfile
    done
fi
sleep 5
done

亲测有效,不过运行过程中会产生下图所示的无用日志,可考虑删掉:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值