我对许多文件进行常规数据分析。
我想了解我的文件的信息包括:
- 该文件包含哪些数据(长而非常长的描述性英文文本)?
- 该文件是从某处下载的(哪里?什么时候?)还是由程序生成的(哪一个?)
- 我为什么要创建这个文件,口头描述我想要用它做什么,它在我的数据分析工作流程中的位置(额外的英文文本描述,也可以很长)
对于这个问题,长文件名根本不是解决方案!即使是长文件名也太短,无法提供完整的描述,而且在实际处理文件(perl、awk、R)时,长文件名会造成阻碍。
我现在做的是在每个目录中创建一个包含文件名、制表符分隔符和长描述的自述文件。但是您可以想象,这种解决方案非常麻烦,因为描述与文件系统和所有内容完全分开,必须单独维护和更新自述文件等。
是否有任何工具可用于提供真正详细、系统的文件名描述?甚至可以集成到文件系统中?
使用的操作系统:Windows 7 和 Cygwin,通过 SSH 和导入 X 的各种版本的 Linux/Unix
答案1
由于您需要一个使用文件系统元数据系统文件的平台独立解决方案,因此 NTFS 提供的文件系统无法使用。
另一种选择是采用数据库系统来管理文件和元数据——完全独立于文件系统。
一种简单的基于文件系统的解决方案是添加第二个包含元数据的文件。例如,基于 XML 的文件,文件名相同,但附加了 xml。所有当前文件系统都支持多个文件扩展名。附加的 XML 文件的优点是,用户可以在文本编辑器中阅读它,而工具也可以解释它并提取相关数据,例如您下载文件的 URL。
答案2
此答案是为了回应您对版本控制系统的评论。
是的,可以使用版本控制系统来实现此目的。
以下是使用 git 描述文件的方法:
$ git init # 如果你已经使用 git,请跳过此步骤 已初始化空的 Git 存储库... $ touch abstract.md # 创建一个空白的 markdown 文档 $ git add abstract.md # 暂存此更改,以便可以将其提交到存储库 $ git commit
这将打开由 定义的文本编辑器$EDITOR
,如下所示:
创建文件 abstract.md 此文件包含我的摘要和此描述 重申一下这条简短的信息,因为我想不出更好的内容了。 # 请输入您更改的提交信息。以 带有‘#’的# 将被忽略,而空消息将中止提交。 # 在 master 分支上 # # 初始提交 # # 需要提交的变更: # 新文件:abstract.md #
当你关闭文件时,git 会将你的更改提交到存储库。
然后要查看该文件的提交,请执行以下操作
git log --follow abstract.md
。
提交 57bd5244574cd77ae62e17651578d88ee8bca919 作者:罗伯特 日期:2017 年 5 月 18 日,星期四 创建文件 abstract.md 此文件包含我的摘要和此描述 重申一下这条简短的信息,因为我想不出更好的内容了。
但我不确定是否可以git log --follow
跨分支跟进。