Automator bash unix脚本,读取输入文件,如果单个文件移动或检测多个存档,然后移动存档

时间:2011-04-29 21:52:59

标签: macos bash shell automator

我有一个用automator制作的液滴,当我将它们放在应用程序图标上的某个文件夹时会移动文件。

现在脚本看起来像这样:

for f in "$@"
do
    cp "$f" "volumes/testdrive/testfolder/$(basename "$f")" 
done

我想知道是否可以执行命令来检测是否有多个文件输入到脚本中,然后使用zip功能将其归档并移动到同一文件夹,如果删除了单个文件,请将文件定期复制到指定文件夹。 / p>

2 个答案:

答案 0 :(得分:2)

使用条件,类似(语法可能会偏离):

if [ $# > 1 ]
 then zip $@ > /path/to/location/foo.zip  # this line might need to be researched
 else cp $@ /path/to/location/`basename $@`
fi

您不希望使用for循环执行此操作,因为它会经历为选择中的每个文件创建zip存档的严格要求。如果你正在做的是移动每一个,那么确定,使用一个循环,但你只是把它们全部拿去并拉链它们

答案 1 :(得分:0)

$#包含传递给脚本的参数数量。