如何找到最大的文件夹?

如何找到最大的文件夹?

如何找出主目录中文件数量最多的文件夹?(不包括目录)

答案1

find -type f -printf '%h\n'|uniq -c|sort -rn|head -1

您可以将“head -<N>”替换为“head -1”以查看前 <N> 个,或将其完全删除以查看从文件数量最多到最少的整个列表

来自“man find”:

   -printf format
     .....
          %h     Leading directories of file's name (all but the last element).  If the file name contains no
                 slashes (since it is in the current directory) the %h specifier expands to ".".

答案2

(cd $HOME && find . -type f) | grep '/.*/' | cut --delimiter=/ --field=1,2 \
 | uniq --count | sort --numeric-sort --reverse \
 | head -1 | cut --delimiter=/ --field=2

即打印主目录下的每个文件路径,仅使用前 2 个目录级别(第一个是.),跳过顶层的文件,分组并计算出现次数,然后排序,然后取第一个条目,并打印目录的名称。

答案3

如果你只是想知道哪个目录有最多的文件,而忽略它们的大小,你可以这样做

find ~/ -type d -print0 | 
    while IFS= read -r -d '' dir; do 
        files=$(find "$dir" -maxdepth 1 | wc -l); 
        echo -e "$files\t$dir"; 
    done | sort -n | tail -n 1

但是,这个方法也会将子目录算作“文件”。如果只计算文件,请使用下面的方法:

find ~/ -type d -print0 | 
    while IFS= read -r -d '' dir; do 
        files=$(find "$dir" -maxdepth 1 -type -f | wc -l); 
        echo -e "$files\t$dir"; 
    done | sort -n | tail -n 1

答案4

使用

$ ls

命令,或者列出目录内容。尝试以下操作:

$ cd /your_directory
$ ls -lA

应该可以。检查

 man ls 

对其进行调整,使其达到您想要的效果。

相关内容