次のディレクトリ構造を考えると:
$ tree --noreport dir
dir
├── fileA
├── .hiddenfileA
├── .hiddendirA
| ├── .hiddenfileB
│ ├── fileC
│ └── fileD
└── dirA
├── .hiddenfileC
├── fileE
└── fileF
要件は、隠されたディレクトリ内のファイルが結果から除外されますが、隠されたファイル(非表示のディレクトリの下)は含まれないようにfindを呼び出すことです。
予想収益は次のようになります。
./.hiddenfileA
./dirA/.hiddenfileC
./dirA/fileE
./dirA/fileF
./fileA
少し調べて見つけました。こここの情報に基づいて、次の呼び出しを作成しました。find
$ find . -type f -not -path '*/\.*' -print
しかし、このソリューションには欠点があります。隠しディレクトリをスキップします。とファイル。
ベストアンサー1
隠しディレクトリをクリーンアップし、結果をファイルに制限します。
find . -type d -name '.?*' -prune -o -type f -print
提案通りゼチル、ディレクトリをフィルタリングしてファイル、リンクなどを表示することをお勧めします。
find . -type d -name '.?*' -prune -o ! -type d -print