linux - 在 Linux 中的文件旁边添加注释

标签 linux bash file comments

我只想在 Linux (Ubuntu) 中的文件旁边添加注释。一个例子是:

info user ... my_data.csv           Raw data which was sent to me.
info user ... my_data_cleaned.csv   Raw data with duplicates filtered.
info user ... my_data_top10.csv     Cleaned data with only top 10 values selected for each ID.

这就是您在 Git 中评论提交的方式。我并不特别关心搜索这些标签、过滤它们等。只是在列出目录中的文件时看到它们。如果我复制或移动文档时评论/标签跟随文档,那就太好了。

最佳答案

大多数文件系统类型都支持扩展属性,您可以在其中存储注释。

例如,在“foo.file”上创建评论:

xattr -w user.comment "This is a comment" foo.file

属性可以随文件一起复制/移动,但请注意,许多实用程序需要特殊选项来复制扩展属性。

然后,要列出带有注释的文件,请使用获取扩展属性的脚本或程序。这是一个作为起点的简单示例,它仅列出当前目录中的文件:

#!/bin/sh
ls -1 | while read -r FILE; do
   comment=`xattr -p user.comment "$FILE" 2>/dev/null`
   if [ -n "$comment" ]; then
      echo "$FILE Comment: $comment"
   else
      echo "$FILE"
   fi
done

xattr 命令非常慢并且写得不好(它甚至不返回错误状态),因此如果可能的话我建议使用其他命令。在比我提供的更复杂的脚本中使用 setfattrgetfattr。或者可能是一个了解 user.comment 属性的自定义 ls 命令。

关于linux - 在 Linux 中的文件旁边添加注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24064940/

相关文章:

java - 使用 & (bg) 运行时,Linux csh 脚本将暂停(tty 输出)

node.js - 无法使用 npm 在 ubuntu 14.04 中安装polymer-cli

bash - 给定一个 logfile.txt,我只想提取 java 脚本名称;例如使用 bash 脚本的 filename.js

scala - 从hadoop文件系统读取文件后,从本地文件系统读取文件

php - 在 PHP 中读取非常大的文件

phpmyadmin 拒绝所有权限(Arch Linux 设置)

linux - perf 可以在内核中找到符号,但在我的程序中找不到符号。如何解决?

C Makefile 编译错误 - "linker input file unused because linking not done"

java - 将 env 变量从文本文件(bash 样式)导入 Java

python - 如何采样一个非常大的 CSV 文件(6GB)