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
选项。
这是 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 字节。