2011-06-14 77 views
0

我BASH功能BASH文件移動

MoveToTarget() { 
    #This takes to 2 arguments: source and target 
    echo ""$1" "$2"" 
    cp -r "$1" "$2" 
    rm -r "$1" 
} 

而且我在路過這些值:
第一個參數:(源)

/home/family/.PROGNAME/更新/更新

第二個參數:(目標)

/家庭/家庭/桌面/客戶/ src目錄

眼下,該文件夾/update被移動到/home/family/Desktop/client/src創建/home/family/Desktop/client/src/update。我怎樣才能得到它/home/family/.PROGNAME/updater/update的內容被轉移到/home/family/Desktop/client/src? (重寫任何現有的文件),而不是僅僅移動文件夾?

一些額外的信息,下面的AutoIt代碼完成我所需要的。

DirCopy($source, $target, 1) 
DirRemove($source, 1) 
+6

你爲什麼不只是使用'mv'? – joschi 2011-06-14 17:51:59

+6

你有沒有理由不使用'mv'? – Kyle 2011-06-14 17:52:41

+2

你的回聲線可能不會做你期望的。你想'echo'$ 1「''」$ 2「'或'echo」$ 1 $ 2「';因爲'$ 1'和'$ 2'中的空白符合意外崩潰。 – Sorpigal 2011-06-14 20:53:09

回答

3
cp -rf /home/family/.PROGNAME/updater/update/* /home/family/Desktop/client/src 

或在你的腳本:

cp -rf "$1"/* "$2"