IT源码网

linux之文件大于目录的平均大小

langtianya 2024年02月27日 程序员 27 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 


你需要做什么:

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


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!