我通常需要为不同的项目存储逻辑上彼此相关的不同文件(example pairs: data-metadata, script-configuration, run_input-run_result-run_log
)。
大多数情况下,我 90% 的时间都使用一个文件,很少需要更改配置、查看日志进行调试等。因此,一直看到这些次要/补充文件让我有点烦恼(感觉我的组织有点混乱)。
我不确定这是否有一个惯例,但我想以最简单的方式创建由单个文件表示的自己的逻辑单元(例如类似于应用程序包但不生成额外文件,也不需要 xcode 或为其构建)。
举个例子,我有三个文件要分组:run1_input.json - run1_result.json - run1_log.txt
。对于每个“运行”,我都会创建一个类似文件的文件夹,例如。run1.json
我希望能够像在普通目录中一样执行、、、cd run1.json
。但具体来说,当我双击时,我希望它能够像我单击一样打开。open run1.json
ls run1.json
open run1.json/run1_input.json
run1.json
run1.json
run1_result.json
run1.json/run1_result.json
所以基本上我正在寻找一种方法让目录中的文件“代表”其父目录。这可能吗?
补充:我对 Linux 也很感兴趣,尽管我目前正计划在 MacOS 上使用它
答案1
如果你想发现者要以这种方式运行,那么我认为您需要使用 Bundles(或编写您自己的 Finder 扩展)。Bundles 应该不难使用。我认为您不需要 XCode 来创建它们。
听起来你是个程序员,所以通过 Platypus 工具创建一个“应用程序”,让它运行任何简单的 shell 脚本。然后,你可以使用 Platypus 创建的应用程序作为文件夹/应用程序的模板。进入文件夹/app/bundle,编辑应用程序运行的脚本,让它运行“textedit run1_result.json”类型的命令。双击应用程序/bundle 将打开你的输出文件。你可以在脚本中使用符号链接执行所有复杂的操作(也许还可以编辑脚本打开的文件),或者让它按照姓名文件夹/应用程序来知道要打开哪个输出文件。
您可能需要编写另一个脚本,该脚本采用您的模板 app/bundle/script,并针对您想要捆绑的每一个内容对其进行结构化。之后,您的代码将在终端中正常运行,但您可以通过双击 Finder app/bundle 与输出进行交互。
由于听起来您也有一些想要编辑的输入(也通过 Finder),当您想要在输入和输出模式之间切换时,也许您想要定义和使用环境变量(您可以通过 Automator 等手动设置)。切换模式,双击应用程序/包,shell 脚本将根据环境变量打开输入或输出文件。