h****g 发帖数: 772 | 1 就是干这个事,我不会怎么写这个遍历?只好这么土土地干,谁能帮我走到任意深的目
录去make
clean呀
#!/bin/bash
for dir in `ls -l|grep ^d |awk '{print $NF}'`
do
cd $dir
for dir in `ls -l|grep ^d |awk '{print $NF}'`
do
cd $dir
for dir in `ls -l|grep ^d |awk '{print $NF}'`
do
cd $dir
for dir in `ls -l|grep ^d |awk '{print $NF}'`
do
cd $dir
if [ -f Makefile ];
then
pwd
make clean
rm -f .*.swp
fi
cd ..
done
if [ -f Makefile ];
then
pwd
make clean
rm -f .*.swp
fi
cd ..
done
if [ -f Makefile ] ;
then
pwd
make clean
rm -f .*.swp
fi
cd ..
done
if [ -f Makefile ] ;
then
pwd
make clean
rm -f .*.swp
fi
cd ..
done
if [ -f Makefile ] ;
then
pwd
make clean
rm -f .*.swp
fi |
M*V 发帖数: 3205 | 2 ft,递归调用
...
【在 h****g 的大作中提到】 : 就是干这个事,我不会怎么写这个遍历?只好这么土土地干,谁能帮我走到任意深的目 : 录去make : clean呀 : #!/bin/bash : for dir in `ls -l|grep ^d |awk '{print $NF}'` : do : cd $dir : for dir in `ls -l|grep ^d |awk '{print $NF}'` : do : cd $dir
|
l*******G 发帖数: 1191 | 3 Try all in one line:
find . -name Makefile |xargs -I {} dirname {} |xargs -I {} bash -c "pushd .
; cd {}; make clean ; rm -f .*.swp; popd" |
x**m 发帖数: 941 | 4 我一开始也在想递归,但是好像用个循环也可以做:
#!/bin/bash
for d in `find . -type d`
do
(cd $d; make clean)
done |
x**m 发帖数: 941 | 5 我一开始也在想递归,但是好像用个循环也可以做:
#!/bin/bash
for d in `find . -type d`
do
(cd $d; make clean)
done |
h****g 发帖数: 772 | 6 这个好是好,但是有没有办法控制find输出结果的顺序呢?
我想要先走到最底层,make clean然后再逐级出来,同级的各个目录的顺序无所谓
【在 x**m 的大作中提到】 : 我一开始也在想递归,但是好像用个循环也可以做: : #!/bin/bash : for d in `find . -type d` : do : (cd $d; make clean) : done
|
j*a 发帖数: 14423 | 7 make有这样的功能呀
我记得每个目录都弄个makefile.
【在 h****g 的大作中提到】 : 就是干这个事,我不会怎么写这个遍历?只好这么土土地干,谁能帮我走到任意深的目 : 录去make : clean呀 : #!/bin/bash : for dir in `ls -l|grep ^d |awk '{print $NF}'` : do : cd $dir : for dir in `ls -l|grep ^d |awk '{print $NF}'` : do : cd $dir
|
d**o 发帖数: 864 | 8 ft....
每个目录下搞一个makefile..
【在 h****g 的大作中提到】 : 就是干这个事,我不会怎么写这个遍历?只好这么土土地干,谁能帮我走到任意深的目 : 录去make : clean呀 : #!/bin/bash : for dir in `ls -l|grep ^d |awk '{print $NF}'` : do : cd $dir : for dir in `ls -l|grep ^d |awk '{print $NF}'` : do : cd $dir
|
x**m 发帖数: 941 | 9 排个序就好了:
#!/bin/bash
for d in `find . -type d | sort -r`
do
(cd $d; make clean)
done
【在 h****g 的大作中提到】 : 这个好是好,但是有没有办法控制find输出结果的顺序呢? : 我想要先走到最底层,make clean然后再逐级出来,同级的各个目录的顺序无所谓
|
j****x 发帖数: 943 | 10 correct
【在 j*a 的大作中提到】 : make有这样的功能呀 : 我记得每个目录都弄个makefile.
|
|
|
l*****u 发帖数: 12114 | 11 看看linux kernel的Makefile不就得了?
的目
【在 j*a 的大作中提到】 : make有这样的功能呀 : 我记得每个目录都弄个makefile.
|
N****w 发帖数: 21578 | 12 那个太复杂了
其实如果每个子目录都需要相同的 makefile,俺有一招
SUBDIRS = $(shell find . -maxdepth 1 -o -type d -name [^.]\* -print | sed s/
\\s/\\+/g)
all: makesubdirs target
.PHONY: makesubdirs $(SUBDIRS)
makesubdirs: $(SUBDIRS)
$(SUBDIRS):
if (test ! -f $(subst +,\ ,$@)/Makefile); then cp Makefile $(subst +
,\ ,$@); fi
$(MAKE) -C $(subst +,\ ,$@)
target:
do sth
【在 l*****u 的大作中提到】 : 看看linux kernel的Makefile不就得了? : : 的目
|
d*********8 发帖数: 2192 | 13 正规传统做法是每个目录一个MAKEFILE
自己折腾SHELL会被认为没有业内经验。 |
d*********8 发帖数: 2192 | 14 可能你不知道 make -C path
才会问这样的问题。 |
l****g 发帖数: 122 | 15 option -R for ls
-R, --recursive
list subdirectories recursively |
h****g 发帖数: 772 | 16 然后呢?怎么让make逐个调用它们呢?
还是make有什么选项?
【在 d*********8 的大作中提到】 : 正规传统做法是每个目录一个MAKEFILE : 自己折腾SHELL会被认为没有业内经验。
|
j*a 发帖数: 14423 | 17 这你得去RTFM
【在 h****g 的大作中提到】 : 然后呢?怎么让make逐个调用它们呢? : 还是make有什么选项?
|
B*V 发帖数: 3365 | 18 parent folder的makefile。am 里面写有子目录的内容阿
不知道你什么意思
一般工程师
/project/src/make.am
/project/anothercase/makefile.am
....... /makefile.am
/project/makefile。am里面
SUBDIR = src anothercase
然后再/build/里面make
就会把子目录的豆调用了
【在 h****g 的大作中提到】 : 然后呢?怎么让make逐个调用它们呢? : 还是make有什么选项?
|
S***d 发帖数: 1802 | 19 Google automake (This is where .am files are for) |
N****w 发帖数: 21578 | 20 did you try this:
http://mitbbs.com/article1/Linux/31259325_3_0.html
【在 h****g 的大作中提到】 : 然后呢?怎么让make逐个调用它们呢? : 还是make有什么选项?
|
S******y 发帖数: 1123 | 21 Use Python - os.walk - to traverse directories |