【发布时间】:2020-03-04 04:06:33
【问题描述】:
我已经养成了使用以下命令在我的编辑器中快速打开相关文件进行代码审查的习惯。
git diff --name-only master... | xargs realpath | someEditor
但最近遇到一个问题,第一个或第二个文件可能已被删除,编辑器会产生错误消息,并且无法打开其余文件,迫使我一个一个打开它们。
我可以键入类似的命令来跳过不存在的文件吗?
【问题讨论】:
-
根据该命令的手册页,“除了最后一个组件之外的所有组件都必须存在”。
-
使用
readlink,它有关于如何处理不存在的文件的明确选项。 -
@CharlesDuffy readlink 似乎没有输出任何内容。也是的,我得到了绝对路径位,但我猜我习惯了路径必须存在的 php realpath。
-
readlink 有选项(
-f、-m等)。选择哪一个对于选择其行为很重要。 -
顺便说一句,请注意
xargs在名称中包含空格时是不可靠的,除非您使用-0(带有 NUL 分隔的输入和输出)或-d $'\n'(带有换行符分隔的输入和输出,但需要 GNU 工具)。