【问题标题】:find directories having size greater than x MB查找大小大于 x MB 的目录
【发布时间】:2013-07-11 16:49:42
【问题描述】:

是否可以找到大小仅大于 x MB 的目录。 假设,我想在/home下找到所有大小大于1000MB且只有1个maxdepth的目录,如何找到它?

【问题讨论】:

标签: linux shell unix


【解决方案1】:

如果我对您的问题的解释正确,我认为这可能就是您想要的:

cd /home
du -sm * | awk '$1 > 1000'

这将显示/home 中包含超过 1000MB 的所有目录。如果您的du 版本不支持-m,您可以使用du -sk 并调整awk 位以查找超过1,000,000KB 的...

【讨论】:

    【解决方案2】:

    根据manpage-k 选项符合POSIX,但-m 选项不符合。

    因此,以下内容更便携(即,如果您使用的是 BSD,它仍然可以工作)但本质上是相同的:

    du -sk * | awk -v m=1000 '$1 > 1024*m'
    

    只需将 awk 变量 m 设置为您希望作为截止值的兆字节数。

    我发现这对于移动一批文件非常有用,因此在这里发布是为了他人的利益。

    要扩展它以将所有符合您条件的文件移动到另一个目录,您可以调整 awk 命令以仅打印移动所需的位(不包括大小),然后循环:

    # moving all directories meeting the size criteria to another location:
    for d in $(du -sk * | awk -v m=1000 '$1 > 1024*m {print $2}')
    do 
        mv $d $DESTINATION
    done
    

    【讨论】:

    • 这样的posix,非常符合:)
    猜你喜欢
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 2018-05-03
    • 2021-07-07
    • 2021-03-30
    • 2016-01-08
    • 2018-01-16
    • 1970-01-01
    相关资源
    最近更新 更多