0

我需要一个git命令(或 bash 替代品)来快速找到工作目录中的所有文件。

我正在尝试改进FZF_DEFAULT_COMMANDfzf目前git ls-files. 问题在于该命令无法找到新文件。我还想删除结果中已删除的文件。该命令不应返回 git 忽略的任何文件。

我试过了

export FZF_DEFAULT_COMMAND='{ git ls-files & git ls-files --other --exclude-standard; }'

但它仍然显示已删除的文件。

4

1 回答 1

4
$ git ls-files -o -c --exclude-standard > /tmp/c; git ls-files -d > /tmp/d; grep -vf /tmp/d /tmp/c

解释:

git ls-files -o -c --exclude-standard- 生成我们想要返回的文件列表;保存到临时文件/tmp/c

git ls-files -d- 这是每个 OP 不需要的已删除文件的列表;保存到另一个临时文件/tmp/d

grep -vf /tmp/d /tmp/c/tmp/c/tmp/d删除的行返回所有行

没有 tmp 文件:

grep -vf <(git ls-files -d) <(git ls-files -o -c --exclude-standard)
于 2019-05-16T14:03:05.280 回答