【问题标题】:How to create a toggle hidden file button如何创建切换隐藏文件按钮
【发布时间】:2013-04-02 09:40:21
【问题描述】:

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

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

我尝试了以下方法,但它不起作用:

获取选定的 Finder 项目

运行 Shell 脚本:

STATUS = chflags

for f in "$@"

  if [$STATUS = unhidden]

  then

    chflags hidden

  else

    chflags unhidden

  fi

    killall Finder

【问题讨论】:

    标签: automator hidden-files


    【解决方案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 “服务”工作流程,则不需要在开始时执行“获取选定的 Finder 项目”操作;您的服务将通过选定的项目作为输入。

    [1] 主要是。它不能在名称中“隐藏”的文件上正常工作。解决这个问题,也许通过使用stat(1),留给读者练习。

    【讨论】:

    • 谢谢。它主要工作,但我使用另一个服务查看隐藏文件,选择隐藏文件或文件夹并激活它不会使其不隐藏的服务。你知道如何解决这个问题吗?
    • 这取决于文件最初是如何隐藏的。该脚本通过旋转文件的“隐藏”标志来工作,但 Finder 有几种不同的隐藏文件规则,而标志只是其中之一。它还将隐藏名称以“.”开头的任何项目,并且它具有要隐藏的固定项目列表,例如“垃圾箱”。如果不使用“AppleShowAllFiles”默认值,您将无法使这些文件可见,我猜您已经知道了。 (你可以重命名一个点文件,但是你会冒着其他程序找不到它的风险。)
    • 谢谢,我没想到。
    猜你喜欢
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 2016-03-05
    • 2011-05-30
    • 2021-12-02
    相关资源
    最近更新 更多