2014-09-02 50 views
0

我目前正在使用:在bash中,我如何重命名使用rsync傳輸的文件?

rsync -e ssh "$f" $destination:$destinationFolder/"$baseFileName.lck" 

如果baseFileName中有一個空間,這是行不通的。

我也使用baseFileName在其他幾個地方,如:

destChecksum="$(echo "$(ssh $destination md5sum $destinationFolder/"$baseFileName.lck")"| cut -d \ -f 1)" 

該行還打破了在baseFileName空間的存在。 請提出解決方案。

回答

0

嘗試

rsync -e ssh "$f" $destination:$destinationFolder/"${baseFileName// /\ }.lck" 
+0

感謝您的及時回覆 – user3867945 2014-09-02 10:59:40

0

你需要用反斜槓字符\逃脫在baseFileName的空間。

因此,如果文件名是my file.txt,則需要將其值設爲$baseFileName,作爲my\ file.txt

如果您從文件中獲取baseFileName,則可以使用類似sed這樣的工具來搜索空白字符並用反斜槓和空格字符替換。

+0

感謝您的及時回覆 – user3867945 2014-09-02 10:59:59