求助 自动进入文件夹运行命令

sh/bash/dash/ksh/zsh等Shell脚本
回复
formylove2
帖子: 105
注册时间: 2008-11-03 10:06

求助 自动进入文件夹运行命令

#1

帖子 formylove2 » 2010-05-04 15:20

是这样的
现在我在一个目录内
里面有很多文件夹
我想在这个目录下运行一个脚本 可以在进入此目录下的每个文件里运行 make clean 的命令
注:每个文件夹里还有许多有子文件夹

各位大虾提示下 在此谢谢了
头像
HuntXu
帖子: 5776
注册时间: 2007-09-29 3:09

Re: 求助 自动进入文件夹运行命令

#2

帖子 HuntXu » 2010-05-04 15:38

代码: 全选

for i in `ls`; do cd $i && make clean && cd ..; done
这需求怪怪的...
HUNT Unfortunately No Talent...
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 求助 自动进入文件夹运行命令

#3

帖子 eexpress » 2010-05-04 16:07

恶毒的,才用&&来判断正常cd
:em04
● 鸣学
formylove2
帖子: 105
注册时间: 2008-11-03 10:06

Re: 求助 自动进入文件夹运行命令

#4

帖子 formylove2 » 2010-05-04 16:31

可用 谢楼上的大侠~!

我再改进下
头像
trigger
帖子: 1604
注册时间: 2006-10-25 18:08

Re: 求助 自动进入文件夹运行命令

#5

帖子 trigger » 2010-05-12 17:50

不要老想着循环嘛,有现成的du啊

代码: 全选

#!/bin/bash
#进入当前目录下的所有递归子目录,说hi,再回到出发的目录
hi=`pwd`
for cdto in `du | awk -F \  '{print$2}'`;do
	cd $cdto
	echo "hi , i am in $cdto now "
	cd $hi
	echo "hi , and i am back"
done
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
formylove2
帖子: 105
注册时间: 2008-11-03 10:06

Re: 求助 自动进入文件夹运行命令

#6

帖子 formylove2 » 2010-05-12 19:52

恩! 才看到 等下 测试下 谢楼上的热心回帖
头像
trigger
帖子: 1604
注册时间: 2006-10-25 18:08

Re: 求助 自动进入文件夹运行命令

#7

帖子 trigger » 2010-05-13 21:48

有个问题,我开始没想到,就是文件夹名有可能是带空格的,这时for ... in ...会用空格把每个字串打散,cd命令就没法正确执行了。有办法避免么?
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
头像
trigger
帖子: 1604
注册时间: 2006-10-25 18:08

Re: 求助 自动进入文件夹运行命令

#8

帖子 trigger » 2010-05-13 21:51

代码: 全选

hi=`pwd`
for cdto in `du | awk '{ $1="";print $0 }'`;do
   cd $cdto
   echo "hi , i am in $cdto now "
   cd $hi
   echo "hi , and i am back"
done
这样也不行awk是正常了,还是卡在前边
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
头像
trigger
帖子: 1604
注册时间: 2006-10-25 18:08

Re: 求助 自动进入文件夹运行命令

#9

帖子 trigger » 2010-05-13 21:56

二楼,你的办法也是这个问题,就算做到递归了,还是不行,怎么cd进带空格的目录呢?或者怎么想办法给加个引号?
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
头像
trigger
帖子: 1604
注册时间: 2006-10-25 18:08

Re: 求助 自动进入文件夹运行命令

#10

帖子 trigger » 2010-05-14 9:43

重写一下,用read line好多了

代码: 全选

#!/bin/bash
hi=`pwd`
du | awk '{ $1="";print $0 }' | while read line ;do cd "$line" && echo "i am in "$line" now " > hello && cd "$hi" ;done 
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
回复