[英]Bash Script How to find every file in folder and run command on it
所以我試圖創建一個查找文件夾的腳本,找到所有具有.cpp並在其上運行g ++的文件類型。 到目前為止,我有,但它沒有運行它說意外結束
for i in `find /home/Phil/Programs/Compile -name *.cpp` ; do echo $i ;
done
謝謝
代碼的問題在於,在傳遞給find之前,shell正在擴展通配符*
。 引用它:
for i in `find /home/Phil/Programs/Compile -name '*.cpp'` ; do echo $i ; done
xargs
,其他人建議的xargs
是解決這個問題的好方法。
find
有一個選項可以做到這一點:
find /p/a/t/h -name '*.cpp' -exec g++ {} \;
您可以使用xargs:
find folder/ -name "*.cpp" | xargs g++
或者,如果要處理包含空格的文件:
find folder/ -name "*.cpp" -print0 | xargs -0 g++
這段代碼適合我:
#!/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
如何使用這樣的xargs:
find $working_dir -type f -name *.cpp | xargs -n 1 g++
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.