如何创建切换隐藏文件按钮

时间:2013-04-02 09:40:21

标签: automator hidden-files

我正在尝试在automator中创建一个服务,帮助我隐藏或取消隐藏文件/文件夹。

我是一个非常新的初学者,对自动机不了解,我只尝试将不同的服务放在一起,但我甚至不知道它们是如何工作的。

我尝试过以下操作,但无效:

获取选定的Finder项目

运行Shell脚本:

STATUS = chflags

for f in "$@"

  if [$STATUS = unhidden]

  then

    chflags hidden

  else

    chflags unhidden

  fi

    killall Finder

1 个答案:

答案 0 :(得分:1)

你并不是那么遥远:你的主要困难是如何测试文件当前是否隐藏。 (虽然你的bash语法是错误的,并且基于Finder的服务来切换可见性只有一半是有道理的 - 你如何选择一个看不见的文件?)也就是说,这个脚本将起作用[1],因为你'用bash重新运行它并将输入作为参数传递:

for f in "$@"
do
    if ( ls -lO "$f" | grep -wq hidden )
    then
        chflags nohidden "$f"
    else
        chflags hidden "$f"
    fi
done

之后杀死Finder是没有必要的;它会自动注意到“隐藏”的变化。如果您创建Automator“服务”工作流程,则不需要在开始时执行“获取选定的查找项目”操作;您的服务将作为输入传递所选项目。

[1]主要是。对于名称中包含“隐藏”的文件,它无法正常工作。通过使用stat(1)来解决这个问题,可以留给读者练习。