如何更改find​​er中空白文件夹的外观?


1

我正在寻找一种方法来更改find​​er中空文件夹的外观,以便将它们与包含内容的文件夹区分开。

有谁知道通过第三方软件,通过操作系统或以编程方式执行此操作的方法?


我能想到的唯一方法是使用shell脚本遍历所有目录,然后根据文件夹是否为空为文件夹着。但是,这不会自动运行,您必须触发它。
slhck

那可能行得通-我只需要脚本部分即可识别我猜到的空文件夹。
mheavers 2012年

Answers:


2

这个简单的脚本会浏览所有空文件夹,例如从开始~/Desktop,然后将color 7应用于灰色。

根据您的喜好更改这些值,例如~/Documents,要浏览“文档”文件夹中所有文件的文件夹。标签的颜色,在开始0,并且7是最高的数字。

#!/bin/bash
label=7
start=~/Desktop
while IFS= read -d '' -r dir; do
    osascript -e "tell application \"Finder\" to set label index of alias POSIX file \"$dir\" to $label" > /dev/null
    echo "Applied label to $dir"
done < <(find $start -mindepth 1 -type d -empty -print0)

要运行此脚本,请通过Applications / Utilities / Terminal.app打开一个终端,然后打开一个文本编辑器,如nano

粘贴内容,然后通过输入进行保存CtrlO,然后输入文件名。完成后按。现在,使用使其可执行chmod +x recolor.sh,并通过输入名称(如)来运行它~/Documents/recolor.sh

它将打印应用标签的所有文件夹的路径,并在完成后退出。请注意,这不会自动识别您将来可能创建的任何新的空文件夹,因此您将不得不再次运行此脚本。

也可以osascript使用此Stack Overflow答案中label()函数替换对的调用。


2

以下解决方案主要是bash(shell)脚本,但与Automator集成在一起使其使用起来更加方便。

打开Automator并选择创建一个新的工作流。添加一个“运行Shell脚本”操作,该操作接收到stdin和以下脚本的输入:

find "$@" -type d -empty

如果在Automator中运行该文件夹,则所有空文件夹将显示在“ 结果”中。要对其执行操作,请在其下面添加例如“ 将搜索项移到垃圾箱”操作或“ 标签搜索项”操作。

通过使它成为Automator工作流程,您可以方便地重复执行它,甚至可以使它作为服务在选定的文件或文件夹上执行(文件»转换为…»服务,或首先使其成为服务)。这样,如果您要清理特定的文件夹及其内容,则可以轻松完成。

您可以在系统偏好设置»键盘»键盘快捷方式»服务中分配键盘快捷方式

在此处输入图片说明


我认为我已经使Shell脚本有点太复杂了……
丹尼尔·贝克

哈哈,我要说:P –但是使用Automator可能更好。随意“窃取” shell脚本。
slhck 2012年

有没有办法使此任务持续运行?还是每天运行一次?
Adam_G '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.