我需要一个git命令(或 bash 替代品)来快速找到工作目录中的所有文件。
我正在尝试改进FZF_DEFAULT_COMMANDfzf目前是git ls-files. 问题在于该命令无法找到新文件。我还想删除结果中已删除的文件。该命令不应返回 git 忽略的任何文件。
我试过了
export FZF_DEFAULT_COMMAND='{ git ls-files & git ls-files --other --exclude-standard; }'
但它仍然显示已删除的文件。
$ 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)