shell脚本实现遍历某个目录下所有的目录和子目录下的文件和文件夹,筛选出小于10T的文件夹和文件,然后删除筛选结果,直到把整个目录删除干净
时间: 2024-01-22 19:19:36 浏览: 21
可以使用以下脚本实现:
```bash
#!/bin/bash
# 定义函数用于遍历目录
function traverse() {
for file in "$1"/*; do
if [[ -d "$file" ]]; then
traverse "$file"
elif [[ -f "$file" ]]; then
check_file_size "$file"
fi
done
}
# 定义函数用于检查文件大小是否小于10T
function check_file_size() {
size=$(du -sk "$1" | awk '{print $1}')
if [[ $size -lt 10485760 ]]; then
remove_file "$1"
fi
}
# 定义函数用于删除文件
function remove_file() {
echo "Removing file: $1"
rm -rf "$1"
}
# 主程序
if [[ $# != 1 ]]; then
echo "Usage: $0 <directory>"
exit 1
fi
dir=$1
if [[ ! -d "$dir" ]]; then
echo "$dir is not a directory"
exit 1
fi
traverse "$dir"
```
使用方法:将脚本保存为一个文件,例如 `delete.sh`,然后在命令行中执行以下命令:
```
$ bash delete.sh <directory>
```
其中 `<directory>` 是要删除的目录的路径。注意,这个脚本会直接删除文件和文件夹,所以请谨慎使用。建议先将要删除的目录备份一下。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)