linux如何编个shell去指定按照某个文件里列出的文件名来循环删除某个文件夹下的这些文件

各位高手,小弟对Linux不了解,现遇到一个麻烦,望各位帮助下:问题描述:假设File目录下有很多个文件夹,这些文件夹是按天生成各自命名的文件夹,例如20131224,2... 各位高手,小弟对Linux不了解,现遇到一个麻烦,望各位帮助下:
问题描述:假设File目录下有很多个文件夹,这些文件夹是按天生成各自命名的文件夹,例如20131224,20131225,20131226等等,而以天命名的文件夹下还有一层文件夹,这些是1-999的数字命名的,最后在这层文件夹里是各个图片文件,现在我想删除某天文件夹下的某些文件,由于文件较多,于是假设我在File同级目录下建立了一个文本文件叫:filename,是专门记录具体删除某天文件夹下的哪些文件,比如我想删除20131225那天的一部分文件(不含文件夹),我就在filename中写好图片的文件名,然后我如何写一个shell,使该shell自动去读这个filename中的文件名并对应将指定的那天的filename中的这些文件循环遍历删除掉。现附上dos的脚本如图所示,换句话说,能否帮忙将dos该脚本换成linux该脚本,谢谢!
展开
 我来答
QICHUAN_ZHANG
2013-12-27 · TA获得超过199个赞
知道小有建树答主
回答量:1646
采纳率:0%
帮助的人:554万
展开全部
可以的,我给你写出来吧,用shell ,+741345015
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
videlord
推荐于2017-10-09 · TA获得超过1336个赞
知道大有可为答主
回答量:1518
采纳率:66%
帮助的人:439万
展开全部
你还不如把filename的格式贴出来
linux shell处理string的能力比dos不知强了多少倍
假设你要处理/path/to/20131223下的文件

#!/bin/sh
while IFS='~' read -ra ln; do
for x in "${ln[@]}"; do
find /path/to/20131223 -type t -name $x -exec rm {} \;
done
done < /path/to/filename
追问

 

谢谢啊,我的filename形如这样的。

追答
每一行就是一个文件?那很容易了

#!/bin/shwhile read -r ln; do find /path/to/20131223 -type t -name $ln -exec rm {} \;done < /path/to/filelist
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式