2011-06-14 80 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"