所以我试图创建一个查找文件夹的脚本,找到所有具有.cpp并在其上运行g ++的文件类型。到目前为止我有,但它没有运行它说意外结束
for i in `find /home/Phil/Programs/Compile -name *.cpp` ; do echo $i ;
done
由于
答案 0 :(得分:4)
代码的问题在于,在传递给find之前,shell正在扩展通配符*
。引用它:
for i in `find /home/Phil/Programs/Compile -name '*.cpp'` ; do echo $i ; done
但是,其他人建议的 xargs
是解决这个问题的好方法。
答案 1 :(得分:3)
find
可以选择这样做:
find /p/a/t/h -name '*.cpp' -exec g++ {} \;
答案 2 :(得分:1)
您可以使用xargs,如:
find folder/ -name "*.cpp" | xargs g++
或者如果你想处理包含空格的文件:
find folder/ -name "*.cpp" -print0 | xargs -0 g++
答案 3 :(得分:1)
答案 4 :(得分:1)
此代码适用于我:
#!/bin/bash
for i in `find /home/administrator/Desktop/testfolder -name *.cpp` ; do echo $i ;
done
我明白了:
administrator@Netvista:~$ /home/administrator/Desktop/test.sh
/home/administrator/Desktop/testfolder/main.cpp
/home/administrator/Desktop/testfolder/main2.cpp