簡體   English   中英

Bash腳本如何查找文件夾中的每個文件並在其上運行命令

[英]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++

我想你想使用xargs

例如:

find /home/Phil/Programs/Compile -name *.cpp | xargs 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM