自动挂载并复制数据

自动挂载并复制数据

我正在尝试编写一个 BASH 脚本,一旦将 SD 卡插入读卡器就会自动安装它,然后将所有图片移动到 HDD 中的文件夹中,并将每个文件重命名为拍摄图片的日期和时间。

有什么想法可以实现吗?我正在使用没有 GUI 的 Ubuntu 12.04,谢谢 :)

答案1

只是为了为您提供完整的答案:

自动挂载并复制数据

高级方法(你应该怎么做)

您将需要使用UDEV 规则特定于唯一唯一标识符您的设备(请原谅我上述类型的 udid)。

懒惰的方法(你可以怎么做)

运行CRON 作业以指定的时间间隔执行脚本。显然,在执行其余操作之前,您需要脚本验证 SD 卡是否已插入和/或已安装。

重命名/移动

获取 EXIF 数据

$ identify -verbose imageFile.jpg

这会产生很多好东西,所以假设您想要从中获得创建日期 - 让我们将其过滤掉:

$ identify -verbose imageFile.jpg | awk '/exif:/'(或 grep exif)


更新:

OP 在评论中请求另一种方法:

您要求嵌套文件夹,例如 2012 年 11 月 20 日将是 ~/2012/11/20/*.jpg's

这是我为尝试此操作而编写的脚本,它现在可与 EXIF 配合使用(初始项目基于创建日期,当您移动或复制文件时,该日期会浮动)。它托管在我的空白网站上,我也会发布屏幕截图(因为在这里对其进行格式化需要付出很多努力)。 图像处理

图像处理

我建议你在实施之前先进行有限的测试。我输入了命令行参数进行测试,所以我将 ~/Pictures 改为 ~/Documents(尽管它更喜欢完整路径)

答案2

以下是对 Ubuntu 中强大安装触发器的答案:https://help.ubuntu.com/community/UsbDriveDoSomethingHowto

只需输入脚本即可移动照片。例如:

/bin/bash #!/bin/bash
#
# 目标文件如 ../20121115-174656-originalname

源=/mnt/sdcard/
目的地= / home /您的帐户/照片/

cd $源

对于 i 在 `find.-maxdepth 1-type f-printf";%f\n"`;中执行

iinfo =`stat -c%y $ i | cut -c1-19`
idate=`date --date="$iinfo" +%Y%m%d-%H%M%S-`

echo mv $i $destination$idate$i

完毕

相关内容