Ai
1 Star 0 Fork 0

houmingzhang/mycommand

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
mycleansys 1.63 KB
一键复制 编辑 原始数据 按行查看 历史
houmingzhang 提交于 2020-10-01 11:10 +08:00 . 命令
#!/bin/bash
# $1是运行脚本时,输入的第一个参数,这里指的是使用者希望搜索的目录
# 下面的代码是对目录进行判断,如果为空则使用脚本所在的目录;否则,搜索用户输入的目录
if [[ -z "$1" ]] || [[ ! -d "$1" ]]; then
echo "The directory is empty or not exist!"
echo "It will use the current directory."
nowdir=$(pwd)
else
nowdir=$(cd $1; pwd)
fi
echo "$nowdir"
allcleansize=0
# 递归函数的实现
function SearchCfile()
{
cd $1
#这里可以修改为判断文件类型,如.c,.java等等文件类型,修改一下grep条件就可以了
cfilelist=$(ls -l | grep "^-" | awk '{print $9}')
for cfilename in $cfilelist
do
readelf -h $cfilename 1>/dev/null 2>&1
if [ $? -eq 0 ];then
tempsize=`ls -l $cfilename | awk '{print $5}'`
allcleansize=`expr $allcleansize + $tempsize`
allcleansizeinKB=`expr $allcleansize / 1024`
echo "$cfilename 将被删除,当前文件大小:$tempsize,总的删除文件大小:$allcleansizeinKB KB "
rm -rf $cfilename
fi
done
# 遍历当前目录,当判断其为目录时,则进入该目录递归调用该函数;
dirlist=$(ls)
for dirname in $dirlist      
do
if [[ -d "$dirname" ]];then
cd $dirname
#SearchCfile 这里有bug,跳转到根目录了
#这里把当前的目录作为参数输入
SearchCfile $(pwd)
cd ..
fi;
done;
}
# 调用上述递归调用函数
SearchCfile $nowdir
find . -size 0 -exec rm {} \;
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Shell
1
https://gitee.com/dtrylzhm/mycommand.git
git@gitee.com:dtrylzhm/mycommand.git
dtrylzhm
mycommand
mycommand
master

搜索帮助