从AppleScript调用fdupes

时间:2015-04-17 00:06:45

标签: bash shell applescript

我想在AppleScript的fdupes . -dN目录中运行~/Desktop/md

do shell script "/bin/bash fdupes ~/Desktop/wd ." with administrator privileges

我收到了这个错误

  

错误“/ bin / bash:fdupes:没有这样的文件或目录”编号127

但是我可以在终端上发出这个命令就好了。

我使用brew install fdupes

从终端安装了命令行

1 个答案:

答案 0 :(得分:2)

do shell script声明:

  • 执行与sh一起传递的命令,bash在POSIX兼容模式下运行。
  • 使用$PATH变量的精简版本,该变量在我的OSX 10.10.3系统上,相当于:/usr/bin:/bin:/usr/sbin:/sbin
  • root 目录中运行命令/

因此:

  • 无需显式调用bash(假设您没有使用POSIX兼容模式中不可用的功能,例如<(...)(进程替换))。
  • 您必须使用完整路径调用未预先安装的实用程序(或将/usr/local/bin等dirs。附加到$PATH变量作为命令的一部分。)

假设fdupes位于/usr/local/bin(相应调整):

do shell script "/usr/local/bin/fdupes ~/Desktop/wd ." with administrator privileges

但请注意 .默认情况下会引用/ - 根据需要添加cd命令。

备注是原始命令(自修改后):您需要使用&&而不是&来加入命令 - 后者在后台启动前面的命令