在Windows上的msysgit中轻松解析文件权限

3

如果我使用Linux或Cygwin,我可以像这里描述的那样使用stat --format=%a

但是,我只想使用默认情况下在msysgit中提供的工具。我的主要选择似乎是解析ls的输出,但这并不是很好的选择:

drwxr-xr-x    0 jaxelson Administ        0 Jul 13  2009 PrintHood/
dr-xr-xr-x    0 jaxelson Administ     8192 Jan  3 09:22 Recent/

有没有更简单的方法?

背景: 我需要这样做是因为 sed 中存在一个错误,它无法正确保留权限。欲了解更多信息,请参见此处

另外,运行 sed 的脚本正在以 git-hook 的身份运行。


等一下,这跟 Git 有什么关系吗? - fge
@fge 我猜这与直接相关无关。但它是在 msysgit (git bash) 环境中作为 git 钩子运行的。我已经稍微澄清了答案并删除了 git 标签。 - Jason Axelson
可能有助于解释您可用的工具。完全没有stat命令,还是不支持--format选项? - jordanm
@jordanm根本就没有stat命令。主要可用的工具是awk、sed和bash。基本上就是默认的Git Bash环境提供的内容。 - Jason Axelson
1个回答

2
您可以使用:

perl -e'printf "%o\n",(stat shift)[2] & 07777' <filename>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接