Shell遍历文件夹删除指定后缀名的文件

2024-05-01 18:18

本文主要是介绍Shell遍历文件夹删除指定后缀名的文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

有时候想删除一个文件夹中指定后缀名的文件,但是该文件夹又有很多子文件夹,手动删除太麻烦,而且效率低,于是就想到用最近学习的Shell脚本遍历删除:

该脚本需要输入两个参数:

$1是指定的文件夹;$2是指定的后缀名。

#!/bin/bash
#遍历文件夹、删除指定后缀名的文件
#问题:受保护的文件删除不了function scandir() {local cur_dir parent_dir workdirworkdir=$1cd ${workdir}if [ ${workdir} = "/" ]thencur_dir=""elsecur_dir=$(pwd)fifor dirlist in $(ls ${cur_dir})doif test -d ${dirlist};thencd ${dirlist}scandir ${cur_dir}/${dirlist} $2cd ..else#echo ${cur_dir}/${dirlist}#做自己的工作local filename=$dirlist#echo "当前文件是:"$filename#echo ${#2} #.zip 4#echo ${filename:(-${#2})}if [[ ${filename:(-${#2})} = $2 ]] thenecho "删除文件"$filenamerm -f $filenamefifidone
}if test -d $1
thenscandir $1 $2
elif test -f $1
thenecho "you input a file but not a directory,pls reinput and try again"exit 1
elseecho "the Directory isn't exist which you input,pls input a new one!!"exit 1
fi
比如要删除/home/xxx目录下的文件夹及其子文件夹中的所有后缀名为.zip的文件,调用脚本:

sh ergodicfilename.sh /home/xxx .zip
注:这里还有一个问题,当文件受保护时,没有权限删除,话说当初写这个脚本就是为了删除被病毒感染的文件夹里的所有dll文件。

大哭


这篇关于Shell遍历文件夹删除指定后缀名的文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/952358

相关文章

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

java -jar example.jar 产生的日志输出到指定文件的方法

《java-jarexample.jar产生的日志输出到指定文件的方法》这篇文章给大家介绍java-jarexample.jar产生的日志输出到指定文件的方法,本文给大家介绍的非常详细,对大家的... 目录怎么让 Java -jar example.jar 产生的日志输出到指定文件一、方法1:使用重定向1、

基于Python实现数字限制在指定范围内的五种方式

《基于Python实现数字限制在指定范围内的五种方式》在编程中,数字范围限制是常见需求,无论是游戏开发中的角色属性值、金融计算中的利率调整,还是传感器数据处理中的异常值过滤,都需要将数字控制在合理范围... 目录引言一、基础条件判断法二、数学运算巧解法三、装饰器模式法四、自定义类封装法五、NumPy数组处理

mybatisplus的逻辑删除过程

《mybatisplus的逻辑删除过程》:本文主要介绍mybatisplus的逻辑删除过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录myBATisplus的逻辑删除1、在配置文件中添加逻辑删除的字段2、在实体类上加上@TableLogic3、业务层正常删除即

MybatisPlus中removeById删除数据库未变解决方案

《MybatisPlus中removeById删除数据库未变解决方案》MyBatisPlus中,removeById需实体类标注@TableId注解以识别数据库主键,若字段名不一致,应通过value属... 目录MyBATisPlus中removeBypythonId删除数据库未变removeById(Se

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总