2012-09-05 64 views
0

我與這個任務掙扎:「。‘如何使用發現捆綁文件

編寫一個腳本,需要輸入一個目錄(路徑)的名稱和 名鹼(例如,’ * .txt「等)。腳本應搜索給定的目錄樹 ,找到與給定文件名匹配的所有文件,並將其綁定到一個文件中。執行給定的文件作爲腳本 應該返回原始文件。

任何人都可以幫助我嗎?

首先,我試圖做的查找部分是這樣的:

#!/bin/bash 

filebase=$2 
path=$1 

find $path \(-name $base \) 

後來我發現了一束這個代碼,但我不知道如何將它們結合起來。

for i in [email protected]; do 
echo "echo unpacking file $i" 
echo "cat > $i <<EOF" 
cat $i 
echo "EOF" 
done 
+0

你看看這個:http://stackoverflow.com/a/955490/718618 –

+5

這功課嗎? – tripleee

+0

歡迎來到Stackoverflow。請修改您的帖子以顯示您嘗試過的內容。你做了什麼研究?你寫了什麼腳本,它給了什麼錯誤信息? – Gray

回答

1

你打算在tripleee的評論,你可以使用shar生成自解壓壓縮文件。 您可以輸出find並傳遞給shar以生成歸檔。

#!/bin/bash 

path="$1" 
filebase="$2" 
archive="$3" 

find "$path" -type f -name "$filebase" | xargs shar > "$archive" 

傳遞給find-type f選項將限制搜索到的文件(即,不包括目錄),這似乎是一個所需的限制。

如果上面的腳本名爲archive_script.sh,並且是可執行的,那麼你可以按照以下稱之爲例如:

./archive_script.sh /etc '*.txt' etc-text.shar 

這將在/ etc創建所有的.txt文件的歸檔shar