2008-12-13 161 views
1

某些服務器僅支持ftp來上傳文件。使用符號鏈接替換某些文件的shell腳本

當我導出一個項目從我的Subversion倉庫我的Windows機器,所有的(Linux)的符號鏈接是取代由佔位符,文件:

 
link ../www_public/images 

上傳的所有導出的文件後,我現在用的

 
find | xargs grep -P ^link 

找到所有這些佔位符。然後我手動將它們替換爲實際的符號鏈接。

我真的很想用shell腳本自動化這一步。
我該怎麼做?

注:
如果有更好的/不同的解決了這個問題,不要猶豫,分享:)

回答

2

這裏是一個可能的解決方案:

: 
grep -lr '^link' . | while read placeholderfile 
do 
    linkfile=`cut -c6- "$placeholderfile"` 
    ln -sf "$linkfile" "$placeholderfile" 
done 

編輯:改變了以上wrt的代碼下面的評論。

+0

使用cut -c6-(路徑可能有空格)可能會更好。另外,我不明白你的聲明。我期望像ln -s「`pwd`/$ linkfile」「$ placeholderfile」。 (可能刪除rm並使用ln -sf。)也可能是因爲我對問題的解釋不同。 – mweerden 2008-12-13 18:31:27

相關問題