我一直在使用ls -R
来查看中小型目录的结构和内容,比如我正在处理的项目,但由于存在而变得难以使用其中很多都是.git
。
当有.git
时,ls -R
的前100行只是git索引文件和哈希的大量列表,因此很难使用。有没有办法可以修改ls -R
或其他工具,我可以使用它只显示.git
以外的文件?最好,我仍然可以看到其他dotfile文件夹,但如果我不能,我就能活下来。
答案 0 :(得分:1)
您需要的是ls的-I
(或--ignore
)选项:ls -R -I .git
查看manual:
‘-I pattern’
‘--ignore=pattern’
In directories, ignore files whose names match the shell pattern (not regular
expression) pattern. As in the shell, an initial ‘.’ in a file name does not
match a wildcard at the start of pattern. Sometimes it is useful to give this
option several times. For example,
$ ls --ignore='.??*' --ignore='.[^.]' --ignore='#*'
The first option ignores names of length 3 or more that start with ‘.’, the
second ignores all two-character names that start with ‘.’ except ‘..’, and
the third ignores names that start with ‘#’.
答案 1 :(得分:1)
Git的ls-files
有很多有用的选择。普通git ls-files
将仅列出跟踪的文件。使用git ls-files -oc
列出所有内容。
git ls-files -ic --exclude-standard
列出了与.gitignore
模式匹配的所有跟踪文件,最好了解这些文件。
要求它只显示“忽略”文件,同时提供自定义忽略模式非常有用:
git ls-files -ic -x*.pdf
将向您显示所有跟踪.pdf,s / ic / io /以及未跟踪.pdfs等Check out its docs,您可以[ab]以各种有用的方式使用其排除变体。
答案 2 :(得分:0)
一种可能性是使用find:
find . -path ./.git -prune -o -print