0

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

现在脚本如下所示:

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

我想知道是否可以执行命令来检测是否将多个文件输入到脚本中,然后使用 zip 函数将它们存档并移动到同一个文件夹,如果单个文件被删除,则将文件定期复制到指定文件夹。

4

2 回答 2

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 存档的复杂过程。如果你正在做的是移动每一个,那么当然,使用一个循环,但你只是把它们都拿走并拉上拉链

于 2011-06-28T03:20:42.310 回答
0

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

于 2011-04-29T22:58:50.890 回答