如何列出超出指定大小限制的所有文件和文件夹?

rɑː*_*dʒɑ 7 command-line disk-usage

在一个分区中,我有几个文件和文件夹,我可以du像这样列出所有这些文件大小:

du -h
Run Code Online (Sandbox Code Playgroud)

但是如何列出超出特定磁盘空间大小(如 5MB)的所有文件?

squ*_*org 10

find /home/stephenm/ -maxdepth 1 -size +20k -exec du -h {} \;
Run Code Online (Sandbox Code Playgroud)

这应该在 /home/stephenm 中列出超过 20k 的任何内容

递归进入子目录删除-maxdepth 1选项。


Pav*_*l A 0

这是 bash 中的一个直接解决方案,它分析文件和文件夹的大小:

#!/bin/bash

folder="$1"
limit="$2"

IFS=$'\n'
for item in `find "$folder"`; do
    size=$(du -s "$item" | cut -f1)
    if [ $size -gt $limit ]; then
        echo $item
    fi
done
Run Code Online (Sandbox Code Playgroud)

第一个参数是要检查的目标文件夹,
第二个参数是以千字节为单位的限制,其中 1K=1024 字节。