在Automator工作流程中获取文件大小

时间:2017-01-21 17:45:35

标签: bash service filesize automator

在Automator中创建服务(运行shell脚本> Bash)以在Finder中复制到所选文件的剪贴板文件大小(以字节为单位)。我不太熟悉bash,也看不出这是错的。 目的是在右键单击文件时将其显示在“服务”菜单中,然后我可以将文件大小粘贴到我喜欢的任何位置。 我在Automator中选择的选项是:

服务在“Finder.app”

中接收选定的“文件或文件夹”

Shell / bin / bash

将输入作为参数传递

for f in "$@"
do
    getty=$(ls -l "$f")
done

IFS=' ' read -a newList <<< "${getty}"

echo -n ${newList[4]} | pbcopy

运行Shell脚本失败 - 1错误:

- : - c:line1:意外标记“do

附近的语法错误

2 个答案:

答案 0 :(得分:2)

不使用ls,而是使用stat来获取文件大小。

stat -f '%z' "$f" | pbcopy

将一组文件的名称和大小复制到剪贴板:

stat -f '%N %z' "$@" | pbcopy

答案 1 :(得分:1)

为了让大家更清楚,解决方案是:

  1. 创建一个空的自动化脚本
  2. 添加操作“从 Finder 中获取所选元素
  3. 使用输入作为参数添加操作“运行 shell 脚本”
  4. 使用以下脚本:
<块引用>
 stat -f  '%z' "$@" | pbcopy