群晖照片视频整理归档-完结篇

  • 闲暇之余 整理往日照片,历经了 exiv2 / exiftool 重命名、 SQLite 归档 和 人工识别 。
  • 群晖存储上有价值的文件名都已经格式化完毕,赶紧把它们 异地 备份一轮,脚本如下:
#!/bin/bash
# Copy.sh : Backup the files to remote storage.
readonly pDir="${1:-~/XiaoMi/Image/}"  # 照片文件备份路径
readonly vDir="${2:-~/XiaoMi/Video/}"  # 视频文件备份路径
readonly dDir="${3:-~/XiaoMi/Document/}" # 日志存储目录
readonly iLog="${dDir}Copy.log"  # 备份成功
readonly wLog="${dDir}Copy.wan"  # 已经存在
readonly eLog="${dDir}Copy.err"  # 无需备份和出错信息
readonly debug=false  # 调试开关,按需开启
readonly stdName="(^|[[:space:]])[2,1][0,9][0,1,2,7,9][0-9][0-1][0-9][0-3][0-9]-[0-2][0-9][0-5][0-9][0-5][0-9]($|[[:space:]])" # 标准格式
find ~{higkoo,anglix}/Drive/{Moments,Backup} ! -path "*@eaDir*" -type f | while read -r sPath; do
    unset fName sExt rCopy rCode nDir dPath
    sExt="${sPath##*.}" && sExt="${sExt,,}"
    [[ ${sExt} == "jpeg" ]] && sExt=‘jpg‘  # 将jpeg后缀改为jpg
    fName="${sPath##*/}" && fName="${fName%%.*}"
    if [[ $fName =~ $stdName ]]; then  # 识别文件名
        case $sExt in
            jpg | livp | heic | cr2 )
                nDir="${pDir}${fName:0:4}/"
                rCopy=true && rCode=‘+‘
            ;;
            mp4 | mov | m4v | wmv )
                nDir="${vDir}${fName:0:4}/"
                rCopy=true && rCode=‘-‘
            ;;
            png | * )  # 鄙视 png ,全是截图
                rCopy=false && rCode=‘*‘
            ;;
        esac
    else
        rCopy=false && rCode=‘/‘
    fi

    if [[ $rCopy && ! -z ${nDir} ]]; then
        dPath="${nDir}${fName}.${sExt}"
        if [[ ! -f "${dPath}" || `stat --printf=%s "${dPath}" 2>/dev/null` -lt `stat --printf=%s "${sPath}"` ]]; then
            mkdir -pv "${nDir}" >>  ${wLog}
            cp -v "${sPath}" "${dPath}" >>${iLog} 2>>${eLog}
        else
            echo "$sPath" >> ${wLog} && rCode=‘^‘
        fi
    else
        echo "$sPath" >> ${eLog}
    fi
    echo -ne "$rCode"
    $debug && declare -p sPath dPath && exit 0
done
    • 照片体积小,相对容易移动、分享,所以和视频独立开、均按年分目录。
    • 脚本经过千锤百炼、始出来,让它跑一会:
    • 之前用exiv2重命名后备份过一次,所以不少^以示逃过。
    • +代表收获1张新照片,-代表收获1张新视频,/是不必备份的文件。
    • 至此,照片/视频整理工作完毕、剩下就是给它们安全的备份起来(略)。
    • 网络营销

原文地址:https://www.cnblogs.com/1994july/p/12438843.html

时间: 2024-10-08 10:32:53

群晖照片视频整理归档-完结篇的相关文章

(视频)《快速创建网站》 4.2 完结篇 – 应用运营vs.发射卫星,遥测(Telemetry) 技术

本文是<快速创建网站>系列的第10篇(完结篇),如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文.访问本系列目录,请点击:http://anb.io/blog/tag/wordpress-on-azure/ 1. 网站管理平台WordPress和云计算平台Azure简介 (6分钟视频 ) 2.1 在Azure上创建网站及网站运行机制 (13分钟视频) 2.2 域名绑定操作和Azure负载均衡机制 (12分钟视频) 2.3 WordPress 初始化和网站管理功能

独孤九篇之运维进阶:文件共享服务全攻略完结篇

一.了解一下 1.NFS NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样. 好处: 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用.用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上

web前端面试题整理(HTML篇)

web前端面试题整理(HTML篇)需要web前端课程工具和电子书,可以加: 33群105601600;  22群1203428331. h5的改进:新元素画布canvas: HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成音频audio视频video语义性: article,  nav ,  footer, section, aside, hgroup等.时间time 新属性拖放: draggable   <img draggable=&q

JavaScript动画工作原理之(完结篇)

原作者:Steven Riche 发布时间:2014年2月18日 原文链接:http://code.tutsplus.com/tutorials/javascript-animation-that-works-part-4-of-4--net-35263 翻译:子毅 --------- 将JavaScript进行到底 碎碎两句 折腾了一个多月,杂七杂八的事情加在一起,简直糟透了.博客停了大概有一个月了,从今天起一切都是新的,做好自己就OK了 ---------------------------

什么是NAS.什么是黑白群晖?(转)

前言               为了让更多的新人可以简单了解什么是nas,什么是黑群晖.什么是白群晖!有什么作用?特此制作以下教学!(原文为MOMO所写).图片也大体从互联网上下载.有对原作者不便之处.请PM本人.会一一改善!大家一起共勉之~~~ Nas是(Network Attached Storage网络附属存储)的简称 在家庭环境,NAS有什么用处呢? 什么是网络上所谓的白群晖.何谓黑群晖? NAS是什么来的,有那么复杂吗? 1.在家里面你可以把NAS当作一台mini简易PC主机,这台主

群晖 网络存储服务器(NAS)

趋势一:云存储已进入你我的生活全球 云服务:Amazon, Apple iCloud, Dropbox, Google Drive, Windows One Drive 国内网盘:百度云,QQ旋风,金山快盘,迅雷 电信商: 中国电信,移动… 趋势二:手持设备已超越PC数量 趋势三:新一代存储方案混合云 混合云:私有云(服务器)+公有云(云存储) 公有云将面临数据安全&费用问题 Amazon: 全球最大的云计算接口当机长达72小时 Dropbox : 四小时无须密码登录 QQ空间: 数据使用权.密

jellin docker 群晖设置方法转自先生

转自https://vipiu.net/archives/2019/04/15/1524.html Jellyfin是一款媒体服务器软件,可在多个平台管理和播放流媒体文件.它是Emby和Plex之外的完美替代品,可通过多个应用程序从专用服务器向终端用户设备提供媒体.Jellyfin是Emby 3.5.2版本的后代,移植到.NET Core框架以得到完整的跨平台支持.最关键的是免费!没有任何附加条件. 安装镜像 关于在Docker中安装和设置镜像可以参考AriaNg这篇文章,下面就只列出重要部分的

hostapd wpa_supplicant madwifi详细分析(十四)——完结篇

注:这篇文章不谈技术 查看了一下<hostapd wpa_supplicant madwifi详细分析>系列文章,断断续续更新到现在,发现中间的持续时间都快要两年了.记得那时候刚毕业到公司,组长叫我看项目的无线部分代码,自己稀里糊涂的看了一个月,组长问我: vap是怎么创建的?sta和AP是怎么建立连接的?wds是怎么工作的?WPS中PIN和PUSHBUTTON的区别是什么?我们DUT中几种加密方式是怎么实现的?hostapd是用来干什么的? 这些问题把我问的瞠目结舌,十分羞愧,感觉自己花了一

黑群晖Aria2下载BT,磁力&amp;PT自用详细设置

用了黑群晖,安装Arai2,发现BT,PT,磁力各种不给力,查百度发现很多配置都比较落后,而且最重要都没有Trackers,因此特意写了这篇以供详细参考.Arai2安装,贪图方便,这里是用群晖里面docker的xujinkai/aria2-with-webui,版本是1.23.1,当然现最新版本是1.38.安装略过,安装启动用web登录一次,然后在群晖里把刚才设置CONFIG的目录共享,我贪图简单就没有用PUTTY来搞,把生成的aria2.conf文件拷贝出来用软件notepad++来编辑.在参