如何找出主目录中文件数量最多的文件夹?(不包括目录)
答案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
对其进行调整,使其达到您想要的效果。