Unix命令 - 对于特定文件夹,列出用户和文件大小,包括子文件夹

时间:2014-06-20 12:08:19

标签: shell unix

我想使用Unix命令列出所有用户以及文件大小,包括指定文件夹的子目录,即如果指定的文件夹是/test/kaustav我想知道用户和相应的文件大小,包括/test/kaustav

中的子目录

我试过以下

ls -l option(这不会给我子目录信息)

ls -lR(当我将输出定向到文件时,输出非常混乱)

任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:0)

如果您的文件/目录名称中没有特殊字符(如空格),则可以使用

ls -l `find . -type f`

.是您希望从中开始的目录(在给定示例中为当前目录)

答案 1 :(得分:0)

我了解您希望文件大小及其所有者: 你可以这样做:

find . -print0 | xargs -0 stat -c " %U %s %n"

将从当前目录递归显示:owner filesize文件。 您还可以对文件大小进行排序,并仍显示所有者和文件:

find . -print0 | xargs -0 stat -c " %U %s %n" | sort -n -k 2,2

编辑:

所以你想获得目录大小,但是你不想递归打印?

find . -maxdepth 1 -print0 | xargs -I {} -0 sh -c "stat -c %U \"{}\"; du -s \"{}\"" | awk 'NR%2{printf $0" ";next;}1' | sort -n -k 2,2

如果你想以递归方式获得所有者和大小,那么只需删除-maxdepth 1.目前还不清楚你何时告诉"包括子目录"如果您只想要文件大小或列表。