写一个shell脚本 在磁盘空间为0的情况下,查找指定目录以及子目录 最大的N个文件,按照大小降序显示(注意是最大的N个文件,而不是目录,仔细检查),文件大小为KB、MB、GB、TB 不能为字节,直接给出一个 最优的完整的案例,不用任何解释
时间: 2023-08-31 17:25:46 浏览: 136
查找指定目录下的文件(包括子目录)
5星 · 资源好评率100%
### 回答1:
```
#!/bin/bash
if df -k | grep -q "100%"; then
echo "Error: Disk space is full"
exit 1
fi
N=10
dir=/path/to/directory
find $dir -type f -printf '%s\t%p\n' | sort -nr | head -n $N | while read size file; do
echo -n "$(numfmt --to=iec-i --suffix=B $size) "
echo $file
done
```
### 回答2:
#!/bin/bash
# 指定目录
target_dir="/path/to/target_dir"
# 最大的N个文件
N=5
# 在磁盘空间为0的情况下查找指定目录以及子目录最大的N个文件
find "$target_dir" -type f -exec du -k {} + | sort -n -r | awk -v N="$N" 'BEGIN{FS="\t"} NR<=N{print $2}'
### 回答3:
#!/bin/bash
# 定义N的值
N=3
# 检查磁盘空间是否为0
df -h | awk '{print $5}' | tail -n+2 | while read percentage; do
if [[ ${percentage%?} -eq 0 ]]; then
# 查找指定目录以及子目录中最大的N个文件
find /path/to/directory -type f -exec ls -l --block-size=M {} + | sort -rnk5 | head -n $N
break
fi
done
阅读全文