You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Rsync与Cp命令复制.txt文件至指定目录(仅更新已存在文件)

使用rsync增量同步目录下所有.txt文件到~/alltxt

嘿,我来帮你搞定这个rsync同步的问题!你之前用cp全量复制所有txt文件没问题,但要实现只更新变更文件的增量同步,rsync确实是最适合的工具。先给你直接上能用的正确命令,再帮你排查可能遇到的异常情况:

核心同步命令

rsync -avm --include='*.txt' --exclude='*' /path/to/your/source/directory/ ~/alltxt/

参数解释(为啥这么写)

  • -a:归档模式,会保留文件的权限、时间戳、所有者等元数据,同时递归遍历子目录,是同步场景的必选参数
  • -v:verbose输出,同步过程会显示详细信息,方便你排查哪里出问题
  • -m:自动排除同步后产生的空目录,毕竟我们只关心txt文件,空目录留着没用
  • --include='*.txt':明确告诉rsync要包含所有.txt后缀的文件
  • --exclude='*':排除所有非txt文件,注意顺序!必须先写include再写exclude,rsync是按规则顺序匹配的,反过来就会把所有文件都排除了

常见异常排查

如果执行命令后出问题,大概率是这几个原因:

  • 源目录路径没加末尾的/:要是你写成/path/to/your/source/directory(没加/),rsync会把整个源目录复制到~/alltxt里,变成~/alltxt/source_directory/xxx.txt,而不是直接把txt文件放到~/alltxt下。赶紧补上末尾的/
  • 权限不足无法写入:检查~/alltxt目录的读写权限,普通用户同步到自己的home目录一般没问题,但如果之前用sudo创建过这个目录,可能需要先改权限:chown -R $USER:$USER ~/alltxt
  • 符号链接没同步对:如果源目录里有指向txt文件的符号链接,默认-a会复制链接本身;要是你想同步链接指向的实际文件,加上--copy-links参数
  • 想清理目标目录中已不存在的txt文件:如果希望目标目录完全和源目录的txt文件保持一致(删掉源里已没有的txt),可以加上--delete参数,但这个要谨慎用,避免误删重要文件!

内容的提问来源于stack exchange,提问作者Smith Dwayne

火山引擎 最新活动