分页: 1 / 1

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

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

各位大虾提示下 在此谢谢了

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

发表于 : 2010-05-04 15:38
HuntXu

代码: 全选

for i in `ls`; do cd $i && make clean && cd ..; done
这需求怪怪的...

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

发表于 : 2010-05-04 16:07
eexpress
恶毒的,才用&&来判断正常cd
:em04

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

发表于 : 2010-05-04 16:31
formylove2
可用 谢楼上的大侠~!

我再改进下

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

发表于 : 2010-05-12 17:50
trigger
不要老想着循环嘛,有现成的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

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

发表于 : 2010-05-12 19:52
formylove2
恩! 才看到 等下 测试下 谢楼上的热心回帖

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

发表于 : 2010-05-13 21:48
trigger
有个问题,我开始没想到,就是文件夹名有可能是带空格的,这时for ... in ...会用空格把每个字串打散,cd命令就没法正确执行了。有办法避免么?

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

发表于 : 2010-05-13 21:51
trigger

代码: 全选

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是正常了,还是卡在前边

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

发表于 : 2010-05-13 21:56
trigger
二楼,你的办法也是这个问题,就算做到递归了,还是不行,怎么cd进带空格的目录呢?或者怎么想办法给加个引号?

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

发表于 : 2010-05-14 9:43
trigger
重写一下,用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