Hi Ben, > Date: 2026-11-06 09:15:22-0500 > From: "D. Ben Knoble" > [...] > > A problem with git-ls-files(1) is that it doesn't have a way to filter > > files by type. That is, it will list symlinks, which will affect the > > search. With find(1), I can control that with '-type f', which makes > > sure I only search in regular files. I'd like to have some feature in > > git-ls-files(1) that allows me to print files of the specified type. > > Since git(1) knows the type of the files, this should be doable without > > much overhead, right? > > Perhaps something with "git ls-files --format='%(objectmode) %(path)' > -z"? Of course, your examples already omit -z, so if you can assume > that it might be simpler. Hmmm, that could work. Thanks! $ git ls-files --format='%(objectmode) %(path)' \ | grep -v ^120000 \ | sed 's/^.* //' \ | grep '\.[ch]$' \ | xargs grepc creat; With -z it becomes a bit tedious: $ git ls-files -z --format='%(objectmode) %(path)' \ | grep -zv ^120000 \ | sed -z 's/^.* //' \ | grep -z '\.[ch]$' \ | xargs -0 grepc creat; But, indeed, I don't care about files with spaces often, because I don't create them in my stuff. I expect git-ls-files(1) could make this much simpler, though: $ git ls-files --type f \ | grep '\.[ch]$' \ | xargs grepc creat; Have a lovely day! Alex --