文件大于目录的平均大小?

时间:2016-01-26 11:38:37

标签: linux bash shell unix

如何查找大小大于或等于当前目录平均文件大小的所有文件和目录?

2 个答案:

答案 0 :(得分:0)

这是我当前的目录(~/Pictures/):

$ ls -la
total 24
drwx------+ 20 myusername  1951017013    680 Feb 17 23:05 .
drwxr-xr-x+ 23 myusername  1951017013    782 Feb 17 23:05 ..
-rw-r--r--@  1 myusername  1951017013  10244 Feb 10 14:15 .DS_Store
-rw-r--r--   1 myusername  1951017013      0 Jan 28 09:00 .localized
drwxr-xr-x  12 myusername  1951017013    408 Feb  5 10:02 02-01-2016
drwxr-xr-x   5 myusername  1951017013    170 Feb  3 12:46 02-02-2016
drwxr-xr-x  15 myusername  1951017013    510 Feb 12 18:22 02-03-2016
drwxr-xr-x  11 myusername  1951017013    374 Feb  7 17:00 02-04-2016
drwxr-xr-x   4 myusername  1951017013    136 Feb  7 17:03 02-05-2016
drwxr-xr-x   6 myusername  1951017013    204 Feb  7 22:13 02-06-2016
drwxr-xr-x  16 myusername  1951017013    544 Feb  8 13:35 02-07-2016
drwxr-xr-x  22 myusername  1951017013    748 Feb  9 13:11 02-08-2016
drwxr-xr-x  51 myusername  1951017013   1734 Feb 10 12:22 02-09-2016
drwxr-xr-x  28 myusername  1951017013    952 Feb 11 12:55 02-10-2016
drwxr-xr-x  13 myusername  1951017013    442 Feb 12 01:00 02-11-2016
drwxr-xr-x  10 myusername  1951017013    340 Feb 15 11:10 02-12-2016
drwxr-xr-x  11 myusername  1951017013    374 Feb 17 12:31 02-15-2016
drwxr-xr-x   6 myusername  1951017013    204 Feb 17 16:44 02-17-2016
drwx------  21 myusername  1951017013    714 Jan 27 10:07 Backgrounds
drwxr-xr-x   6 myusername  1951017013    204 Feb 17 16:44 Temp

首先需要做的是找到第五列的平均值(我的脚本中为$AVG)。我建议将ls -la连接到awk来完成此操作并使用awk -F删除小数点后的所有内容,因为所有大小都是整数(此处只有整数字节)。查看man awk并查找-F,如果我失去了你。请参阅下面的帖子,了解如何执行以下操作:

Use awk to find average of a column

完成此操作后,您应该可以通过简单的逻辑测试重定向此输出。查看man testman [(虽然您的发行版可能不存在man [),以了解您可以执行的更多优秀测试。

$ for i in $(ls -la | awk '{print$5}'); 
> do 
>     # You will have to set $AVG (Refer to above link)
>     [[ $i -gt $AVG ]] && 
>         ls -la | grep "$i"; 
> done 
-rw-r--r--@  1 myusername  1951017013  10244 Feb 10 14:15 .DS_Store
drwxr-xr-x  51 myusername  1951017013   1734 Feb 10 12:22 02-09-2016
drwxr-xr-x  28 myusername  1951017013    952 Feb 11 12:55 02-10-2016

您需要做什么:

计算平均值时最好的问候。我会告诉你该怎么做但我觉得如果你自己做的话你会更好地记住它。

答案 1 :(得分:-4)

你可以使用

du -a 

或更好

du -a | sort 

此致 克劳迪奥