2012-03-07 8 views
2

私はlocalhostからhost1にファイルをrsyncingしています。rsyncは `/ index.php`のパターンを除外しますが、`/dir/subdir/index.php`のパターンは除きません。

rsync  -vq -ar \ 
      --exclude="index.php" \ 
      --exclude="var*" \ 
      --exclude=".svn*" \ 
      --exclude="*~" \ 
      --exclude="Doxyfile" \ 
      --exclude="*.kdev*" 
      --exclude="nbproject" \ 
      ${SRC} [email protected]${HOST}:${RLOC} && echo Files synchronised. 

このコマンドの問題は、任意のディレクトリからindex.phpを除外していることです。しかし、私はそれをルートからだけ除外したい。つまり、私は${SRC}/index.phpをコピーしないでください。しかし、他の意志。どうすればこれを達成できますか?

+0

'--exclude =/index.php'か' -exclude = "$ SRC/index.php" 'を試しましたか? –

+0

@NiklasB私は盲目です! 2番目のパターンは意味があります。 –

答えて

4

すべてのrsync除外パスは、ソースディレクトリに対する相対位置を使用します。つまり、--exclude = "/ index.php"を実行すれば、それはあなたが望むように動作します。しかし、$ {SRC}にスラッシュが付いていることを確認してください。

+0

なぜ '$ {SRC}'の後に '/'をつけますか? –

+1

それ以外の場合は、ソースパスに対して/index.phpを検出しません。 rsyncがそのように作られた理由はわかりませんが、私はそれが事実であることを発見しました –

関連する問題