shell脚本实现遍历某个目录下所有的目录和文件,筛选出小于10T的文件夹和文件,然后删除筛选结果
时间: 2024-01-22 13:19:17 浏览: 190
你可以使用以下 shell 脚本来实现:
```
#!/bin/bash
# 遍历目录下所有的目录和文件
for file in $(find /path/to/directory -type f -o -type d)
do
# 判断文件或目录大小是否小于10T
if [ $(du -s $file | awk '{print $1}') -lt 100000000000 ]; then
# 删除文件或目录
rm -rf $file
fi
done
```
其中,`/path/to/directory` 是你要遍历的目录路径,`-type f -o -type d` 表示同时筛选文件和目录,`du -s $file | awk '{print $1}'` 用于获取文件或目录的大小,单位为字节。如果大小小于 `100000000000` 字节(即小于 10T),则执行删除操作。请注意,删除操作是不可逆的,请谨慎操作。
相关问题
shell脚本实现遍历某个目录下的所有文件和目录删选出小于10T的,然后删除
可以使用 `find` 命令来查找小于 10T 的文件和目录,再使用 `rm` 命令来删除它们。
以下是一个示例脚本:
```bash
#!/bin/bash
# 遍历目录并删除小于 10T 的文件和目录
find /path/to/directory -type f -size -10T -delete
find /path/to/directory -type d -size -10T -delete
```
解释一下:
- `find /path/to/directory`:指定要遍历的目录路径。
- `-type f`:限定查找的是文件类型。
- `-size -10T`:查找小于 10T 的文件或目录。
- `-delete`:删除匹配的文件或目录。
注意:
- 请谨慎使用此命令,因为它将永久删除文件和目录!
- 如果您想先查看匹配的文件或目录,请删除 `-delete` 选项,然后使用 `ls` 命令来查看。
shell脚本遍历四级目录下所有文件夹里的文件
你可以使用以下的 shell 脚本来遍历四级目录下所有文件夹里的文件:
```bash
#!/bin/bash
# 定义遍历目录的函数
function traverse() {
for file in "$1"/*; do
if [[ -d "$file" ]]; then
if [[ "$file" == /path/to/directory/*/*/* ]]; then
traverse "$file"
fi
else
echo "$file"
fi
done
}
# 调用遍历函数
traverse /path/to/directory
```
这个脚本会遍历 `/path/to/directory` 目录下四级子目录中的所有文件,并打印出它们的路径。你可以根据需要修改路径和文件名模式。
阅读全文