想知道两个目录下有哪些文件不同,如目录A和B:
需求1:目录A里独有的文件
需求2:A里与B里都有,但不同的文件
需求3:A里与B里不同的文件(含A里独有的,即需求1+需求2)
需求4:目录A和目录B有哪些文件不同(含B里独有的)
首先想到的是diff,又突然想到文件比较还可以比较文件的大小、时间、校验和等等,rsync就冒出来了,再查果然可以只输出差异,不复制文件。
# 需求1: 目录A里独有的文件
rsync --dry-run --recursive --ignore-existing --out-format="%n" A/ B/
# 需求2: A里与B里都有,但不同的文件
rsync --dry-run --recursive --existing --out-format="%n" A/ B/
# 需求3:需求1+需求2
rsync --dry-run --recursive --out-format="%n" A/ B/
# 需求4:目录A和目录B有哪些文件不同(含B里独有的),B目录独有文件的会以deleting开头
rsync --dry-run --recursive --delete --out-format="%n" A/ B/