【发布时间】:2014-07-08 20:53:08
【问题描述】:
对于我的父母,我尝试使用 Raspberry 转换(微型)SD 卡上的文件名。但很多时候,SD 卡损坏或大文件在重命名文件时从卡中删除。这是我使用的 UDEV 规则:
ACTION=="add",
SUBSYSTEM=="block",
ATTRS{idVendor}=="14cd",
ATTRS{idProduct}=="121f",
RUN+="/home/pi/bashtest.sh"
这是 Raspberry 上 bash 中的代码:
#!/bin/bash
{
sudo umount /dev/sda1
sudo fsck -y /dev/sda1
} &
{
dd=1234567890aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
sleep 5
sudo mount -t vfat /dev/sda1 /media/usb1
cd /media/usb1/DCIM/Camera
sudo find /media/usb1/DCIM/Camera -regextype posix-egrep -regex ".*[^/]{13}.JPG"|
for i in *.JPG
do
ddate=$(exiv2 "${i}"|grep timestamp)
SPEC=$ddate
read X X YEAR MONTH DAY HOUR MINUTE SECOND <<<${SPEC//:/ }
d1=${YEAR:2}
d2=${dd:(10#$MONTH-1):1}
d3=${dd:(10#$DAY-1):1}
d4=${dd:(10#$HOUR-1):1}
d5=${dd:(10#$MINUTE-1):1}
d6=${dd:(10#$SECOND-1):1}
d7=0
/media/usb1/DCIM/"${d1}${d2}${d3}${d4}${d5}${d6}${d7}.JPG"
sudo mv -u "$i" /media/usb1/DCIM/"${d1}${d2}${d3}${d4}${d5}${d6}${d7}.JPG"
done
for i in *.MP4
do
dddate=$(exiftool "${i}" |grep "Media Create Date" | awk -F':' '{print $2, $3, $4, $5, $6, $7}')
SPEC=$dddate
read YEAR MONTH DAY HOUR MINUTE SECOND <<<${SPEC//:/ }
d1=${YEAR:2}
d2=${dd:(10#$MONTH-1):1}
d3=${dd:(10#$DAY-1):1}
d4=${dd:(10#$HOUR-1):1}
d5=${dd:(10#$MINUTE-1):1}
d6=${dd:(10#$SECOND-1):1}
d7=0
sudo mv -u "$i" /media/usb1/DCIM/"${d1}${d2}${d3}${d4}${d5}${d6}${d7}.MP4"
/media/usb1/DCIM/"${d1}${d2}${d3}${d4}${d5}${d6}${d7}.MP4"
done
sudo umount -l /media/usb1
sleep 5
sudo shutdown -h now
} &
在第一个程序中,我在另一张地图中复制了一份,但这占用了 SD 卡的太多空间。有什么想法可以改进代码吗?
这是上一个节目的踪迹:
【问题讨论】:
-
您不能将 SD 卡带到“真正的”PC 上并在那里进行处理吗?祝你好运!
-
祝您好运,自动将 100 多个文件重命名为 8 个字符的名称。而且你还需要带一台笔记本电脑和你的 Ipad 才能复制图片。不过谢谢你的想法。
标签: bash raspberry-pi udev