当前位置: 首页 > Linux

shell脚本:遍历删除

时间:2023-04-06 19:49:40 Linux

遍历删除文本路径上的文件Windows可以安装Gitlinux,脚本deleteFile.sh删除文件,picture.txt保存要删除文件的文件路径,一共有三个图片文件夹下要删除的文件删除图片a/b/c.jpgdeleteFile.sh脚本如下:#!/bin/bash#shell脚本文本保存路径#./deleteFile.sh./picture.txt#判断位置参数是否为1if[$#-ne1];thenecho"Usage$0filename"exitfi#Judge位置参数是否为文件if[!-f$1];thenecho"the$1isnotafile"exitfi#要删除的文件路径的文本filename=$1echo"filename:$filename">>info.txt#计算要删除的文件个数(总行数)NUM=`sed-n'$='$filename`echo"picturedeletenum:$NUM"#逐行读取文件内容,删除路径对应的文件success=0foriin`cat$filename`do#成功信息重定向到info.txtecho"deletesuccess:$i">>info.txtrm-rf$isuccess=`expr$success1`doneecho"successdeletenum:$success"execute。/删除文件。sh./pictureWIn.txt命令后,权限不够。使用chmod命令为shell脚本授予权限。张c.jpg修改了pictureWIn.txt文件的内容,发现只有放在最后一行的数据才能删除成功,之前的数据删除失败:<=1;i--))doecho"deletesuccess:${picture[$i]}"rm-rf${picture[$i]}done尝试读取文字内容存入数组,然后再次删除,结果还是一样。无意中发现存放删除文件路径的text是在windows下创建的,在linux下新建了一个picture.txt文件,执行./deleteFile.sh./picture.txt命令后成功删除。在Linux和Windows下新建一个文本文件。请注意,它只是一个新的,不会将数据写入文件。这时候两个文件是一样的。这时候文件(不管是在哪里创建的)在Windows和Linux下都是一样的。但是一旦修改就不同了。Linux下修改保存,换行符为n,Windows下修改保存,则换行符为rn。并且,一旦修改保存,文件的换行符是n还是rn都不会改变,除非人为修改,只是修改保存里面的内容,换行符的内容不会改变。例如:Windows下给换行符为n的文件添加换行符(使用的编辑工具是Nodepad),Windows下给n添加换行符;在Linux下给一个换行符为rn的文件添加一个换行符(使用的工具是vim),Linux下添加的换行符仍然是rn。删除路径下指定字符串遍历文件系统生成的zip和xlsx文件都有日期(如20191212xxxx.zip)。一段时间后,需要删除之前无用的文件,或者将文件移至/recycleBin回收站。#!/bin/bash#删除/删除文件路径removeFolder="../recycleBin"dir="./"#输入要删除文件的日期/deleteZip.sh20191212removedate=$1#判断position参数是否isemptyif[$#-ne1];thenecho"Usage$0removedate"exitfiecho"removedate:$removedate"#获取文件夹files下的所有文件名=$(ls$dir)#echo$files#循环删除matchingfilesforfilein${files[*]}do#echo$file#删除压缩文件if[[$file=$removedate*.zip]];thenecho"delete$dir/$file"rm-rf$dir/$file#echo"删除$dir/$file到$removeFolder"#mv./$file$removeFolder/.#>>del$removedate.logfi#删除excel文件if[[$file=$removedate*.xlsx]];thenecho"delete$dir/$file"rm-rf$dir/$file#echo"remove$dir/$file到$removeFolder"#mv./$file$removeFolder/.#>>del$removedate.logfidoneecho"删除成功!"设置定时自动执行脚本crontab-e#设置自动执行5116**1sh../shell/deleteZip.sh#设置deleteZip.sh脚本在每周一16:51自动执行参考:1.shell脚本删除目录中的指定文件:https://blog.csdn.net/iteye_2...2、shell脚本删除文件夹下指定文件:https://blog.csdn.net/wjy0629...3、shell中字符串比较和模糊比较说明:https://blog.51cto.com/dangzh...4.shell脚本定时删除文件:https://blog.csdn.net/weixin_...