记录几个文件夹统计bash命令
Page content
1、 统计文件夹下文件的个数
find . -maxdepth 1 -type d | wc -l # 统计当前文件夹下文件夹的个数
find /path -maxdepth 1 -type d | wc -l # 统计指定文件夹下文件夹的个数
2、 删除指定文件夹下小于指定大小文件夹
bash脚本:
#!/bin/bash
# cleanup_small_folders.sh
# 指定文件夹路径
target_dir="/vol1/1000/download/complete"
# 统计当前文件夹下文件夹的个数
folder_count_before=$(find "$target_dir" -maxdepth 1 -type d | wc -l)
echo "文件夹数量(删除前): $folder_count_before"
# 指定文件夹大小的阈值(以KB为单位)
size_threshold=$((1024 * 500)) # 例如,1MB = 1024KB
# 使用find命令查找小于指定大小的文件夹,并删除它们
find "$target_dir" -type d -exec du -sk {} + | awk -v threshold="$size_threshold" '$1 < threshold {print $2}' | while IFS= read -r dir; do
echo "Deleting directory: $dir"
rm -rf "$dir"
done
# 统计当前文件夹下文件夹的个数
folder_count_after=$(find "$target_dir" -maxdepth 1 -type d | wc -l)
echo "文件夹数量(删除后): $folder_count_after"
3、删除大于 3GB 的文件夹
bash脚本:
#!/bin/bash
# cleanup_small_folders.sh
# 指定文件夹路径
target_dir="/vol1/1000/download/complete"
# 统计当前文件夹下文件夹的个数
folder_count_before=$(find "$target_dir" -maxdepth 1 -type d | wc -l)
echo "文件夹数量(删除前): $folder_count_before"
# 指定文件夹大小的阈值(以KB为单位)
size_threshold=$((1024 * 5000)) # 例如,1MB = 1024KB
# 输出提示信息,显示要删除大于多少MB的文件夹
echo "删除大于: $((size_threshold / 1024))M的文件夹。"
# 使用find命令查找小于指定大小的文件夹,并删除它们
find "$target_dir" -type d -exec du -sk {} + | awk -v threshold="$size_threshold" '$1 > threshold {print $2}' | while IFS= read -r dir; do
echo "Deleting directory: $dir"
rm -rf "$dir"
done
# 统计当前文件夹下文件夹的个数
folder_count_after=$(find "$target_dir" -maxdepth 1 -type d | wc -l)
echo "文件夹数量(删除后): $folder_count_after"
4、当前文件夹下文件夹名模糊查找匹配文件夹
find . -type d -name "*data*" #查找文件夹名中包含 data 的文件夹
find . -type d -iname "*example*" #文件夹名中包含 example 且不区分大小写的文件夹