2013-12-13 42 views

回答

3

這是一個棘手的問題,因爲Unix系統沒有「二進制」和「文本」文件之間區別的硬性和快速定義。通過使用file命令並在輸出中搜索text(請參閱How to tell binary from text files in linux),您可以做得相當不錯,因此我將運行find以生成file認爲是文本的文件列表,並將其用作列表文件進行rsync:

find dir | xargs file | awk -F: '$2 ~ /text/ { print $1 }' | \ 
    rsync --files-from=- -av --compress dir server:dir 

這將需要一些調整,以確保路徑名是相對於源代碼目錄正確的,等等,但它應該接近你想要什麼。

從長遠來看,我想重做我的構建過程以將生成的文件放在dir/build目錄中,但這可能對現在有所幫助:-)

1

您可以在目錄中添加.cvsignore文件並使用選項-Crsync

但這只是模糊的你指定的。也許它適合你,也許它會承擔比你更多的事情。所以要小心並正確測試。

此外,您還可以在rsync之前運行find,掃描整個樹的文件符合您的是「二進制」的想法(也許編譯的可執行文件?),並把他們的名字在排除文件,你再與使用選項--exclude-from

相關問題