最近工作中遇到一个需求删除指定路径下的所有空文件夹。这里的空文件夹的认定标准是:如果某个文件夹的子文件夹全是空文件夹,也认为该文件夹是空文件夹。 代码 以下是我实现
最近工作中遇到一个需求——删除指定路径下的所有空文件夹。这里的空文件夹的认定标准是:如果某个文件夹的子文件夹全是空文件夹,也认为该文件夹是空文件夹。 代码以下是我实现的shell脚本,自测没有发现异常。
使用方法在需要Linux中,将代码通过vim或者cat写入到一个shell脚本文件,如clean.sh,并通过chmod +x赋予该文件可执行权限,然后通过./<脚本文件名> <待清理的路径>执行清理任务 。例如./clean.sh /root/geoscene/geoscene ,注意路径的最后不要带/。 测试效果本文的脚本会统计最后删除了多少个空文件夹,并将全部的删除记录打印到控制台,同时将删除文件清单输出到脚本所在文件夹下的output.txt文件中。 总结本脚本通过循环和递归将整个任务分解成一轮一轮的清理任务,直到再也找不到空文件夹为止。实现方式比较暴力,没有考虑时间复杂度。如果您有更优的解决方案,欢迎通过留言评论进行交流。 补充当然Linux还可以实现自下而上的删除空文件夹,下面是实现方法 需求 在工作中遇到一个需求:
简单地说就是要自下而上地删除Linux的空文件夹。 实现 以下是完成的shell方法,,经过测试,能正常使用。 代码
使用说明 该方法需要两个参数,第一个参数为需要删除的最下一层文件夹的绝对路径,该文件夹无论是不是为空,都会被删除,第二个参数为停止删除的文件夹的绝对路径。 如:需要删除/root/myApps/laoWang/CSDN/blogs/test/shell目录,并判定其上层文件夹是否为空文件夹,如果为空也将删除,直到/root/myApps/laoWang才停止删除操作。 那么完成上述需求的执行代码为:delete_empty_dir /root/myApps/laoWang/CSDN/blogs/test/shell /root/myApps/laoWang |
2021-06-17
2022-08-09
2022-08-22
2022-10-26
2022-10-26