Automator服务,bash脚本:获取文件夹文件

时间:2013-10-25 15:39:24

标签: macos bash terminal automator

我有这个工作的Automator / bash脚本,它为我选择的所有文件添加水印:

watermark=~/Dropbox/watermark.png
shopt -s nocasematch
for f; do
  [[ $f =~ .*\.(jpe?g|png)$ ]] || continue
  d="${f%/*}/wm_$(date +%Y_%m_%d)"
  mkdir -p "$d"
  target="$d/${f##*/}"
  size=$(/usr/local/bin/identify -format '%[fx:w/4,279]' "$f")
  /usr/local/bin/composite -dissolve 10% -gravity SouthEast\
  \( $watermark -geometry $size \) "$f" -quality 100 "$target"
done

automator 此设置的问题,这不起作用如果我选择文件夹(当然在这种情况下我设置类型为Automator中的文件和文件夹)里面的图像(仅当我选择图像时工作)。

我的第二个问题是,如何修改此代码以制作selectedfolder_watermarked文件夹?

1 个答案:

答案 0 :(得分:1)

此脚本仅适用于文件夹,例如~/Desktop/dir1/file1.png保存到~/Desktop/dir1_watermarked/file1.png

watermark=~/Dropbox/watermark.png
shopt -s nocasematch extglob
for dir; do
  mkdir "$dir"_watermarked
  for f in "$dir"/*.@(png|jpg|jpeg); do
    size=$(/usr/local/bin/identify -format '%[fx:w/4,279]' "$f")
    /usr/local/bin/composite -dissolve 10% -gravity SouthEast \
    \( $watermark -geometry $size \) "$f" -quality 100 "$dir"_watermarked/"${f##*/}"
  done
done