2016-04-05 8 views
0

私はこれをかなり徹底的に調査しました。おそらく私の場合は「働く」ことはないので、私はここで尋ねると思った。私はこれらのプロジェクトのそれぞれから「3DConformers」のサブディレクトリを取得するためにrsyncコマンドを使用しようとしていますrsyncのルールには、仕事が拒否されます

 
root/ 
    CK1E/ 
     3DConformers/ 
     OtherStuff/ 
    PDE4B/ 
     3DConformers/ 
     OtherStuff/ 
    ... 

は、私のように見えるディレクトリツリーを持っています。

私は、フォームのコマンドを発行しています:

rsync -avz [email protected]:/path/to/root/ . --exclude "*" --include-from rules -v -v 

私はので、私は「CK1E」サブディレクトリに焦点を当て、特定のものを使用することにしました動作するように、一般的なルールを得ることができませんでした。私はrsyncによって先行スラッシュが必要なのか、後続スラッシュが必要なのかについて矛盾するレポートを読んでいたので、私はショットガンのアプローチを取った。現在のルールファイルは次のようになります。

 

    /CK1E 
    /CK1E/ 
    /CK1E/3DConformers 
    /CK1E/3DConformers/ 
    /CK1E/3DConformers/* 
    CK1E 
    CK1E/ 
    CK1E/3DConformers 
    CK1E/3DConformers/ 
    CK1E/3DConformers/* 

rsyncから次の出力が得られます。 "CK1E"ディレクトリはまだ無視されていることに注意してください!

 

    receiving incremental file list 
    [sender] add_rule(- *) 
    [sender] add_rule(+ /CK1E) 
    [sender] add_rule(+ /CK1E/) 
    [sender] add_rule(+ /CK1E/3DConformers) 
    [sender] add_rule(+ /CK1E/3DConformers/) 
    [sender] add_rule(+ /CK1E/3DConformers/*) 
    [sender] add_rule(+ CK1E) 
    [sender] add_rule(+ CK1E/) 
    [sender] add_rule(+ CK1E/3DConformers) 
    [sender] add_rule(+ CK1E/3DConformers/) 
    [sender] add_rule(+ CK1E/3DConformers/*) 
    server_sender starting pid=2451269 
    [sender] make_file(.,*,0) 
    recv_file_name(.) 
    ... 
    [sender] hiding directory CK1E because of pattern * 
    ... 
    received 1 names 
    recv_file_list done 
    send_file_list done 
    get_local_name count=1 . 
    generator starting pid=27883 
    delta-transmission enabled 
    recv_generator(.,0) 
    recv_generator(.,1) 
    generate_files phase=1 
    recv_files(1) starting 
    send_files starting 
    send_files(0, /path/to/root/.) 
    recv_files(.) 
    send_files phase=1 
    recv_files phase=1 
    generate_files phase=2 
    send_files phase=2 
    recv_files phase=2 
    send files finished 
    total: matches=0 hash_hits=0 false_alarms=0 data=0 
    recv_files finished 
    generate_files phase=3 
    generate_files finished 

    sent 212 bytes received 1578 bytes 275.38 bytes/sec 
    total size is 0 speedup is 0.00 
    _exit_cleanup(code=0, file=main.c, line=1505): about to call exit(0) 

ヘルプ?

答えて

0

包含/除外ルールの順序は重要です。最初にファイルに一致する包含/除外ルールが重要です。

最初のルールは--exclude="*"なので、すべてを除外しています。あなたの包含ルールがの前にのcatch-all除外ルールの前に一致するようにルールの順序を変更する必要があります。

このコマンドが動作するはずです:

rsync -avz [email protected]:/path/to/root/ . \ 
     --include "/CK1E/" \ 
     --include "/CK1E/3DConformers/" \ 
     --include "/CK1E/3DConformers/*" \ 
     --exclude "*" 

、明示的に言及していない場合は、キャッチオール除外ルールがそれらにマッチします、ので、あなたは、中間ディレクトリだけでなく、ファイルを追加する必要がありますもしダイレクトが除外されていれば、内容も同様です。

は(\は、コマンドの一部ではありません。彼らは行の継続を示し、あなたのシェルは、あなたがカットアンドペースト、正しいことを行います。)

関連する問題