【问题标题】:Exclude BUILD files from rsync从 rsync 中排除 BUILD 文件
【发布时间】:2018-02-11 18:28:36
【问题描述】:

我正在尝试通过 ssh 将文件从本地计算机上传到服务器进行部署。在上传时,我想排除一些文件,如 .pyc 和 BUILD。

我已设法排除所有文件,但名为 BUILD 的文件除外。

这是我目前的(试运行)终端命令:

rsync -e ssh --dry-run \
  --recursive --archive --verbose \
  --delete \
  --exclude='*.pyc' \
  --exclude='*.scss' \
  --exclude='__*.js' \
  --exclude='*BUILD' \
  --exclude='*.jar' \
  --exclude='*.DS_Store' \
  --exclude='__pycache__' \
  local_folder/ \
  server:server_folder/

除 BUILD 外,所有排除项都有效。

我试过了:

--exclude='*/BUILD'
--exclude='*BUILD'
--exclude='BUILD'

以前的似乎都没有检测到并删除现有的 BUILD 文件。

关于如何排除这些文件的任何想法?

谢谢!

【问题讨论】:

  • 它适用于所有其他人,并且似乎被接受:computerhope.com/unix/rsync.htm
  • 也许您的远程系统中已经有 BUILD 文件,这就是为什么存在,尝试远程删除它然后再次同步,应该可以工作。
  • 我认为这可能是解决方案。过滤器似乎正在处理新的上传。似乎 --delete 不会删除排除的文件。为此需要 --delete-excluded 。想知道答案吗?

标签: shell command-line sh


【解决方案1】:

该命令似乎正在运行,但可能是 BUILD 文件以前已经存在。

如果您已将文件或目录排除在传输之外,--delete-excluded 会将它们从目标端删除,因此应该可以:

rsync -e ssh --dry-run \
--recursive --archive --verbose \
--exclude='*.pyc' \
--exclude='*.scss' \
--exclude='__*.js' \
--exclude='*BUILD' \
--exclude='*.jar' \
--exclude='*.DS_Store' \
--exclude='__pycache__' \
--delete-excluded \
local_folder/ \
server:server_folder/

为了补充检查这个答案,它解释了 rsync https://superuser.com/a/156702/284722 中的删除选项

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-11
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多