2015-10-06 68 views
0

我想寫一個腳本,它需要兩個參數 1.父目錄的名稱(例如mainFolder) 2. tar的名字要創建腳本創建一個父目錄的tar,它的子目錄中有個別的tar目錄

父目錄將有子文件夾(folder1,folder2,folder3等)。 我需要一個腳本,這將創造「mainFolder.tar」,這將包括「folder1.tar」,「folder2.tar」,「folder3.tar」 ......等......

tar cvf mainFolder.jar mainFolder 

這將直接創建父節點的「mainFolder」tar ...任何人都可以告訴我如何讓mainFolder.tar創建&包含它的子目錄的tar ...需要一個Shell腳本(例如createTar.sh)這將做到這一點..

同時創造焦油,只有父文件夾「mainFolder」裏面的「目錄」,應考慮tar..and沒有名爲「.txt」文件..

+1

我更新了我的答案,以反映您指出的目錄子句。希望它足以滿足您的需求。 – 2015-10-08 13:56:11

回答

1

這裏是一個POSI X符合您的問題的解決方案。可能有一種更簡單的方法(不使用任何臨時文件),但它會涉及到tar的特殊和可能的不可移植參數。

#!/bin/sh 


startdir="$(pwd)" 

mkdir -p parent/horse/frog parent/dog/frog parent/fish/frog 

mkdir newparent 

(
    cd parent 

    for i in * 
    do if [ -d "$i" ] 
     then tar -cf "$startdir/newparent/${i}.tar" ${i} 
     fi 
     if [ -f "$i" ] 
     then cp "$i" "$startdir/newparent/" 
     fi 
    done 
) 

tar -cf newparent.tar newparent 
+0

如何排除文件的某些時間,如「* .txt」或「* .confg」....總之,我怎樣才能使其工作只爲目錄? – Priyanka

+1

已編輯,以便僅存檔目錄。 – 2015-10-08 13:46:35

+0

還有一個要求是,目錄以外的文件應該被複制到最終的存檔中。 – Priyanka

相關問題