📅  最后修改于: 2023-12-03 15:12:22.327000             🧑  作者: Mango
当我们需要删除一个目录下所有拥有特定扩展名的文件时,使用递归删除就是最好的选择。
我们可以使用递归的方式,查找并删除目录下所有拥有特定扩展名的文件。
具体步骤如下:
find
命令查找该目录下所有拥有特定扩展名的文件;rm
命令删除;#!/bin/bash
# 输入要删除的文件扩展名
echo "请输入要删除的文件扩展名(例如 .txt):"
read extension
# 定义递归删除函数
function remove_files(){
for file in $(find $1 -name "*$extension"); do
if [ -f "$file" ]; then
rm $file
echo "已删除文件: $file"
elif [ -d "$file" ]; then
remove_files $file
fi
done
}
# 调用递归删除函数
echo "开始删除 $extension 文件……"
remove_files .
echo "已完成删除 $extension 文件!"
read extension
:读取用户输入的文件扩展名;function remove_files()
:定义递归删除函数;find $1 -name "*$extension"
:查找当前目录下所有拥有指定扩展名的文件;if [ -f "$file" ]
:判断查找到的文件是否为普通文件;elif [ -d "$file" ]
:判断查找到的文件是否为目录;remove_files $file
:如果查找到的文件为目录,则递归调用该函数;echo
:输出删除文件的信息。使用递归删除可以方便地删除一个目录下所有拥有特定扩展名的文件。在实际项目中,经常需要删除一些无用的文件,这种方式可以提高效率,减少手动操作的繁琐。