分页: 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

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