findとlsから。と..結果を除外します。

findとlsから。と..結果を除外します。

findこれを防ぎ、結果にls -l表示する方法はありますか...私はこれを出力で見ることにまったく気にしません。これはwc -l、正確なカウントを得るために出力を効率的に配管することを妨げる。

それが重要な場合は、私は働いていますzsh

答え1

の場合は代わりにls使用してください。-A-a

からman ls

   -A, --almost-all
          do not list implied . and ..

答え2

そしてzsh

count() echo $#
count *        # non-hidden files (all types)
count *(D)     # files (all types)
count **/*(D)  # files recursively (all types)
count **/*(D/)  # directories only (recursively)

zshglobは有効な場合でも含まれませ...(例:globbing修飾子を使用))。dotglob(D)

ファイルが存在しないときにエラーメッセージを防ぐには、Nglobbing修飾子を追加してください。

count *(ND)

一致するものがなければ、globは何も拡張されません(引数なし、空の引数ではありません)。

改行はファイル名のすべての文字と同じくらい有効であるため、出力lsまたはfindtoをパイピングすることはwc -l正しくありません。

/POSIXlyでは、改行の代わりに文字数を数えることができます。

find . ! -name . -prune -print | grep -c /

または、このトリックを再帰的に使用してください。

find .//. ! -name . -prune -print | grep -c //

答え3

ドットディレクトリを除外するには、find次のコマンドを使用できます。

$ find . ! -path . -type d

はい

$ find . ! -path . -type d | head -5
./.vim_SO
./.vim_SO/bundle
./.vim_SO/bundle/vim-fugitive
./.vim_SO/bundle/vim-fugitive/plugin
./.vim_SO/bundle/vim-fugitive/doc
...

関連情報