counting number of directories in a specific directory

后端 未结 15 2175
被撕碎了的回忆
被撕碎了的回忆 2020-12-22 21:06

How to count the number of folders in a specific directory. I am using the following command, but it always provides an extra one.

find /directory/ -maxdept         


        
相关标签:
15条回答
  • 2020-12-22 21:39

    find is also printing the directory itself:

    $ find .vim/ -maxdepth 1 -type d
    .vim/
    .vim/indent
    .vim/colors
    .vim/doc
    .vim/after
    .vim/autoload
    .vim/compiler
    .vim/plugin
    .vim/syntax
    .vim/ftplugin
    .vim/bundle
    .vim/ftdetect
    

    You can instead test the directory's children and do not descend into them at all:

    $ find .vim/* -maxdepth 0 -type d
    .vim/after
    .vim/autoload
    .vim/bundle
    .vim/colors
    .vim/compiler
    .vim/doc
    .vim/ftdetect
    .vim/ftplugin
    .vim/indent
    .vim/plugin
    .vim/syntax
    
    $ find .vim/* -maxdepth 0 -type d | wc -l
    11
    $ find .vim/ -maxdepth 1 -type d | wc -l
    12
    

    You can also use ls:

    $ ls -l .vim | grep -c ^d
    11
    
    
    $ ls -l .vim
    total 52
    drwxrwxr-x  3 anossovp anossovp 4096 Aug 29  2012 after
    drwxrwxr-x  2 anossovp anossovp 4096 Aug 29  2012 autoload
    drwxrwxr-x 13 anossovp anossovp 4096 Aug 29  2012 bundle
    drwxrwxr-x  2 anossovp anossovp 4096 Aug 29  2012 colors
    drwxrwxr-x  2 anossovp anossovp 4096 Aug 29  2012 compiler
    drwxrwxr-x  2 anossovp anossovp 4096 Aug 29  2012 doc
    -rw-rw-r--  1 anossovp anossovp   48 Aug 29  2012 filetype.vim
    drwxrwxr-x  2 anossovp anossovp 4096 Aug 29  2012 ftdetect
    drwxrwxr-x  2 anossovp anossovp 4096 Aug 29  2012 ftplugin
    drwxrwxr-x  2 anossovp anossovp 4096 Aug 29  2012 indent
    drwxrwxr-x  2 anossovp anossovp 4096 Aug 29  2012 plugin
    -rw-rw-r--  1 anossovp anossovp 2505 Aug 29  2012 README.rst
    drwxrwxr-x  2 anossovp anossovp 4096 Aug 29  2012 syntax
    
    $ ls -l .vim | grep ^d
    drwxrwxr-x  3 anossovp anossovp 4096 Aug 29  2012 after
    drwxrwxr-x  2 anossovp anossovp 4096 Aug 29  2012 autoload
    drwxrwxr-x 13 anossovp anossovp 4096 Aug 29  2012 bundle
    drwxrwxr-x  2 anossovp anossovp 4096 Aug 29  2012 colors
    drwxrwxr-x  2 anossovp anossovp 4096 Aug 29  2012 compiler
    drwxrwxr-x  2 anossovp anossovp 4096 Aug 29  2012 doc
    drwxrwxr-x  2 anossovp anossovp 4096 Aug 29  2012 ftdetect
    drwxrwxr-x  2 anossovp anossovp 4096 Aug 29  2012 ftplugin
    drwxrwxr-x  2 anossovp anossovp 4096 Aug 29  2012 indent
    drwxrwxr-x  2 anossovp anossovp 4096 Aug 29  2012 plugin
    drwxrwxr-x  2 anossovp anossovp 4096 Aug 29  2012 syntax
    
    0 讨论(0)
  • 2020-12-22 21:39

    If you only have directories in the folder and no files this does it:

    ls | wc -l
    
    0 讨论(0)
  • 2020-12-22 21:40

    If you want to use regular expressions, then try:

    ls -c | grep "^d" | wc -l
    
    0 讨论(0)
提交回复
热议问题