如何使用find来获取所有没有.git文件夹的文件夹?使用find来获取所有没有.git子文件夹的文件夹
在这种结构::
$ tree -a -d -L 2
.
├── a
│ └── .git
├── b
│ ├── b1
│ └── b2
├── c
└── d
└── .git
├── lkdj
└── qsdqdf
这::
$ find . -name ".git" -prune -o -type d -print
.
./a
./b
./b/b1
./b/b2
./c
./d
$
得到git的除外
的所有文件夹,我想获得这个::
$ find . ...
.
./b
./b/b1
./b/b2
./c
$
我认为没有办法做到“纯粹”,但下面的答案是确切的。 – linuxfan
另外 - 请注意换行符分隔的文件列表不一定是安全的:如果有人运行'mkdir -p ./$'\ n'/ etc/passwd',这取决于您的'find'的确切版本和它的'-print'的实现,你可以在你的输出列表中获得'/ etc/passwd'。这种不明确性是'find -print0'的很大动机,尽管符合POSIX的'find -exec'也可以用来从'find'中获得确切的名字(字面换行符,控制序列和全部)。 –