我正在阅读Adam Tornhill的著作《软件设计X射线》,他在第17页指出,该命令可用于获取git repo更改频率的日志:
git log --format=format: --name-only | egrep -v '^$'| sort \ | uniq -c | sort -r | head -5
但是,执行该命令时出现错误Error: "cannot read: ' ': No such file or directory
。
他说这个食谱来自《 Git版本控制食谱》,但是我在任何地方都找不到它的引用,也不太了解Bash或git。
答案 0 :(得分:3)
错误可能是由于管道的sort \
段引起的,无论如何绝对不是您想要的。以这种上下文和方式使用时,反斜杠转义了以下空格字符,使其成为sort
命令的参数。结果命令尝试对名称由单个空格字符组成的文件进行排序(是的,允许使用此类名称),但是毫不奇怪,不存在此类文件。如果您在一行中全部键入此命令,则只需删除反斜杠即可。
我推测该错误可能已经蔓延,因为该命令最初是在两条物理线中(可能是在脚本中)分开,随后又被合并为一条物理线。在多行版本中,紧接在换行符之前,需要使用反斜杠,以使外壳程序将这两行视为一个合乎逻辑的行,但是当删除换行符时,也需要使用反斜杠。>