【问题标题】:Copy all photos on an entire drive in bash? [closed]在 bash 中复制整个驱动器上的所有照片? [关闭]
【发布时间】:2016-05-24 11:59:48
【问题描述】:

我有一个安装在 /run/media/jeremy/MONSTER 的驱动器,该驱动器有大量光圈库、iPhoto 库的旧备份以及多年来主目录的常规备份。

我想追踪每个 gif、jpg、jpeg 和 cannon 原始文件并将它们复制到 /run/media/jeremy/1.4t_Video/photos 并根据文件创建日期为它们指定一个唯一名称.我认为 bash 可以胜任这项任务,但不知道如何去做。

【问题讨论】:

  • 看看功能强大的find 实用程序。首先阅读它的手册页:man find...

标签: linux bash copy rename archive


【解决方案1】:
find /run/media/jeremy/MONSTER \( -iname \*.gif -o -iname \*.jpg -o -iname \*.jpeg \) -exec cp {} /run/media/jeremy/1.4t_Video/photos/ \;

这应该找到所有以这些扩展名结尾的文件并将它们复制到 /run/media/jeremy/1.4t_Video/photos/

如果您想添加更多扩展,只需使用 -o -iname *。

【讨论】:

  • 你应该试着解释一下这是在做什么
【解决方案2】:

你可以使用这样的脚本:

#!/bin/bash
serial=0
find /run/media/jeremy/MONSTER \( -iname \*.gif -o -iname \*.jpg -o -iname \*.jpeg -o -iname \*.cr2 \) -print0 |
   while read -r -d '' f; do

      # Get its extension, like "jpg" or "cr2"
      ext=${f##*.}

      # Get its date of creation like "2012-01-07 11:06:45"
      datetime=$(stat --printf="%w" "$f" | sed 's|\..*||')

      # Formulate a new name
      new="/output/dir/${datetime}-${serial}.${ext}"

      # Show what we came up with
      echo Would copy $f to $new
      # cp "$f" "$new"

      ((serial++))
   done

目前它什么也没做,它只是告诉你它会做什么。如果看起来正确,请删除 cp 前面的 # 取消注释倒数第三行。请先备份,用少量文件进行测试...

样本输出

Would copy ./b.jpg to /output/dir/2016-02-11 10:40:58-0.jpg
Would copy ./mosaic/0.jpg to /output/dir/2016-02-08 12:36:06-1.jpg
Would copy ./mosaic/1.jpg to /output/dir/2016-02-08 12:36:07-2.jpg
Would copy ./mosaic/10.jpg to /output/dir/2016-02-08 12:36:12-3.jpg
Would copy ./mosaic/100.jpg to /output/dir/2016-02-08 12:36:41-4.jpg
Would copy ./mosaic/101.jpg to /output/dir/2016-02-08 12:36:42-5.jpg
Would copy ./mosaic/102.jpg to /output/dir/2016-02-08 12:36:42-6.jpg
Would copy ./mosaic/103.jpg to /output/dir/2016-02-08 12:36:42-7.jpg

【讨论】:

    猜你喜欢
    • 2012-05-06
    • 2014-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    相关资源
    最近更新 更多