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
改行で区切られたファイルのリストは必ずしも安全ではないことに注意してください。あなたの '' find''の正確なバージョンに応じて 'mkdir -p ./$ '\ n'/etc/passwd'その '-print'の実装では、あなたの出力リストに'/etc/passwd'を得ることができます。 POSIX準拠の 'find -exec'は' find'の正確な名前(リテラル改行、制御シーケンスなど)を得るためにも使えますが、このようなあいまいさはfind-print0の動機の大部分です。 –