
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)
(zsh
globは有効な場合でも含まれませ.
ん..
(例:globbing修飾子を使用))。dotglob
(D)
ファイルが存在しないときにエラーメッセージを防ぐには、N
globbing修飾子を追加してください。
count *(ND)
一致するものがなければ、globは何も拡張されません(引数なし、空の引数ではありません)。
改行はファイル名のすべての文字と同じくらい有効であるため、出力ls
またはfind
toをパイピングすることは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
...