我正在尝试使用rsync
将文件夹的内容复制到另一个文件夹。这是我为此使用的命令。
rsync -v -r $folder64/Pictures/* $folder65/Pictures/
这是错误代码。
building file list ... rsync: link_stat "/Volumes/HD/Users/jol/Pictures/*" failed: No such file or directory (2)
done
我在很多包含项目的文件夹中得到了这个。有时,例如,如果我只是在桌面上创建一些东西。
答案1
要将文件夹复制到另一个文件夹,rsync
只需执行以下操作
rsync -a /source/folder/path/ /destination/folder/path/
就你而言,
rsync -a "$folder64/Pictures/" "$folder65/Pictures/"
/
重要的是对源的追踪。
使用时,$folder64/Pictures/*
您可能不会复制单个文件夹的内容,因为命令行参数会扩展为源文件夹中与*
文件名通配模式匹配的项目列表,并且这通常与隐藏文件或文件夹不匹配。
在您的特定情况下,您会收到错误消息“没有这样的文件或目录”。这意味着您指定为源的目录根本不存在,或者是空的。如果它为空,这会导致*
保持未展开状态,并且rsync
无法找到*
要同步的给定文件(称为 )。
答案2
rsync
您是否可能使用涉及的别名noglob
?一些 shell 配置框架会为您设置(例如 zsh 的 prezto)。我经历过同样的行为,你可以:
- 取消设置别名 (
unalias rsync
) - 输入完整路径(
/usr/bin/rsync [etc.]
可能) - 或使用
command rsync [etc.]
来规避它。