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

问题描述 投票:-7回答:2

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

linux bash shell unix
2个回答
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

您需要做什么:

在计算平均值时,最好的问候。我会向您展示如何做到这一点,但是我觉得如果您自己做的话会更好地记住它。


-4
投票

您可以使用

du -a 

或更好

du -a | sort
© www.soinside.com 2019 - 2024. All rights reserved.