问题:使用rm删除一个目录下的除了ttt以外的所有文件
问题:使用rm删除一个目录下的除了ttt以外的所有文件
解决:
1. ls | grep -v ttt | xargs rm {}
2. ls | grep -v ttt | xargs rm
3. mv ttt /tmp/ && rm -rf * && mv /tmp/ttt ./
4. find . -name e -prune -o -print | xargs rm -rf
5. find . -name e -prune -o -name dir -prune -o -print | xargs rm -rf {}
6. 删除目录下的除去ttt和目录外所有文件
d=/tjy/
for i in `ls $d`; do
if [ $i != "ttt" ];then
j=`file $d$i | awk '{print $2}'`
if [ $j != "directory" ];then
rm -rf $d$i
fi
fi
done
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
这是一种思想,在编程自动化大型操作中还是很有用的.
以前在升级系统的时候,有个目录里的东西目录要留下,很多文件删掉,但文件没有规则,所以很麻烦。但是加上这个脚本就方便多了。为了方便以后的工作而已。
有任何问题都可以找我,乐意为大家解决!{:3_203:}
学习
本帖最后由 renxiao2003 于 2010-08-20 15:43 编辑
在多个文件处理时也只能用脚本了啊。
if ttt more and more...how to do
太强了,你先把ttt移出来,然后rm 删除,再创建ttt目录,移回,这样多简单啊。
{:3_203:}
rm 已经做好的设置,直接可以用.爽啊.各种技巧供选择.
6. 删除目录下的除去ttt和目录外所有文件
d=/tjy/
for i in `ls $d`; do
if [ $i != "ttt" ];then
j=`file $d$i | awk '{print $2}'`
if [ $j != "directory" ];then
rm -rf $d$i
fi
fi
done