更改文件名并将其移动到具有相同名称的文件夹

时间:2014-03-07 19:48:37

标签: bash file directory

我正在努力保持一些媒体文件的组织 - 从命名约定到文件夹层次结构。这些文件保存在服务器上,因此将其作为cron运行是最好的选择。主要问题是一些图像,取决于谁采取它们,没有适当的名称。

我目前拥有的文件夹结构是:

    Landscapes (2012)
    Buildings (2013)
    Contemporary Designs (2014)
    etc.

文件保存为:

    Landscapes 010 (2012).jpg # correct
    Landscapes 011 (2012).jpg # correct
    Landscapes (2012) 012 (Regional_Airport).jpg #sometimes happens and need to delete the (Regional_Airport)
  • 我希望修剪文件名以保持名称日期和序列#(无论位置如何)*幻想是将它们保持在相同的顺序中,例如(Regional_Airport)将被删除, 012放在(2012)之前。
  • 将文件移动到具有相同名称和年份的文件夹

我的脚本编写能力相当有限,但是在弄乱Hazel的时候发现了这个(这是一个有限的选项,因为我的电脑不会整天待在一起)。

    #!/bin/bash
    RootFolder=/Volumes/image_store

    # split only on new line
    OLDIFS="$IFS"  # save it
    IFS="
    "
    file="$1"
    for folder in $(ls -1 $RootFolder/)  ; do

    ufolder=`echo $folder | tr "[:upper:]" "[:lower:]"`
    ufile=`echo $file | tr "[:upper:]" "[:lower:]"`

   if grep -q $ufolder <<< $ufile ; then
   mv $file to $RootFolder/$folder
   /usr/local/bin/growlnotify -m "Moved $file to $folder in Image_Store" ImageMover
   exit 0
   fi

   done

   IFS=OLDIFS

0 个答案:

没有答案