• rsync的用法


    对隐藏文件的态度

    默认是否会拷贝隐藏文件? 如何修改这个行为?

    会拷贝, 可以用exclude来修改这个行为, --exclude=.git. 也可以是通配符(不是正则表达式), --exclude=.*. 可以用多个--exclude选项. 再来说include, 它是搭配exclude用的, 如果exclude的某个通配符表达包含我们想同步的文件, 可以用include加上这个文件(当然也是支持通配符的). 单独用include没有任何效果, 都是拷贝全部, 包括隐藏文件.

    会拷贝哪些文件?

    rsync在默认行为下, 会拷贝哪些文件? 举一个场景, 两个目录下, 都有很多文件, 多数内容是一样的, 但是目录A要新一些, 多添加了一些内容. rsync A B, A没有, B有的文件, 会不会被删除? 如果A,B有同名文件, 但是不一样, B上的文件会被覆盖么? 记得有个update选项, 它的行为相比于默认有什么区别?

    rsync有一个简单的检查方式, 如果size和modified time相同, 那么不会拷贝.

    默认下, 如果不一样, 目的文件是会被覆盖, 但是, 有这些选项可以改变这个行为:
    -c(--checksum), 看看它们是不是真的不一样, 当然需要更多CPU时间
    --ignore-existing: 如果已经存在了同名文件, 无论怎样, 都不要改了.
    --backup: 如果有, 不要覆盖, 加上后缀~(也可以通过--suffix指定要加的后缀). 然后再传输A中的文件. 也就是说, 本来的和B的, 在A中都会有.
    --update: 如果不一样(大小和modified时间), 但是那边更新, 那就不管. 默认是, 就算B更新, 也会被覆盖, 因为要以A为准.
    --delete:
    rsync A B, A没有, B有的文件, 会不会被删除: 默认不会, 如果加上--delete, 会删除.

    /的作用

    rsync -a dir host:dest_dir
    rsync -a dir/ host:dest_dir
    第一种是dest_dir下有dir, 第二种是把dir下所有文件同步过去, 不包括dir本身.

  • 相关阅读:
    Java的值传递机制
    面向对象
    java中static关键字的作用
    方法的重载和重写
    this和super的用法
    Java中关于return的理解
    java经典的内存图 (数据结构)
    java IO最让初学者误解的取名方式
    UDP 与 TCP简单入门理解示例
    Shiro简单入门
  • 原文地址:https://www.cnblogs.com/Tokubara/p/15422038.html
Copyright © 2020-2023  润新知