shell脚本实现遍历某个目录下的所有文件和目录删选出小于10T的,然后删除
时间: 2024-01-22 11:19:10 浏览: 24
可以使用 `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脚本实现遍历某个目录下所有的目录和文件,筛选出小于10T的文件夹和文件,然后删除筛选结果
你可以使用以下 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的文件夹和文件,然后删除筛选结果
可以使用以下脚本实现:
```bash
#!/bin/bash
# 遍历目录
for file in /path/to/directory/*; do
# 判断是否为目录或文件
if [[ -d "$file" ]] || [[ -f "$file" ]]; then
# 获取文件大小
size=$(du -s "$file" | awk '{print $1}')
# 判断文件大小是否小于10T
if [[ "$size" -lt 100000000000 ]]; then
# 删除文件或目录
rm -rf "$file"
fi
fi
done
```
其中 `du -s` 命令可以获取目录或文件的大小,单位为字节。然后将其转换为 T 单位,判断大小是否小于 10T,如果是则删除。注意在删除时使用了 `-rf` 参数,可以递归地删除目录及其下的所有内容。