我一直在使用同步在 OS X 上同步我们所有的网站管理员。在 OS X 10.6.3 更新之前,它运行良好!
现在它会创建数千个空 (0-kb) 文件夹。它只在同步到已安装的网络驱动器时才会这样做(我们需要这样做),因为当我同步到本地驱动器时,它会照常工作!
我尝试过排除,但似乎不起作用...还尝试了不同版本的 rsync,所以这是 OS X 问题。
echo ""
echo "~*~*~*~*~*~*~*~*~*~*~*~*~*"
echo " SYNCING up KINEMASTIK"
echo "~*~*~*~*~*~*~*~*~*~*~*~*~*"
/usr/local/bin/rsync -aNHAXv --progress --exclude-from 'exclude.txt' /Volumes/Groups/Projects/483_Modern_Activity_Website/web/youradmin/ /Users/dan/Dropbox/documents/WORK/kinemastik/WEBSITE/youradmin/
echo ""
echo "~*~*~*~*~*~*~*~*~*~*~*~*~*"
echo " SYNCING up CHRIS BROOKS YOURADMIN"
echo "~*~*~*~*~*~*~*~*~*~*~*~*~*"
/usr/local/bin/rsync -aNHAXv --progress --exclude-from 'exclude.txt' /Volumes/Groups/Projects/483_Modern_Activity_Website/web/youradmin/ /Volumes/Groups/Projects/516_ChrisBrooks/website/youradmin/
有谁遇到过同样的问题吗?
答案1
我知道这是一个老问题,但我最近遇到了这个问题,在其他地方找到了答案(http://hintsforums.macworld.com/showthread.php?t=116751),并想与大家分享。
显然,这种情况发生是因为 rsync 尝试创建一个临时文件,在重命名文件之前将文件复制到该文件中。临时文件名的形式为“.{filename}.{some unique id}”。由于文件是“.DS_Store”,因此它会创建“..DS_Store.{some unique id}”。但 OS X 似乎无法处理以“..”开头的文件,因此 rsync 会悄悄失败并再次尝试(重复进行)。
解决方案是忽略.DS_Store 文件。
人们在删除这些 ..DS_Store.{some unique id} 文件时也遇到了麻烦。要删除它们,请运行:
find . -name '..DS_Store*' -print0 | xargs -0 rm
勘误表:
上面的删除文件命令最终对我不起作用。我不得不转到我的 Windows 计算机(通过 Airport Extreme 连接到此外部驱动器)并删除文件。我想通过 Firewire 将驱动器直接安装到我的 Mac 上可能也有效。
答案2
rsync 命令语法有问题?快速检查我的机器 (10.6.3) 上的 man 文件后发现:
--exclude-from=FILE read exclude patterns from FILE
答案3
我也遇到过这种情况。我还没有尝试过,但临时解决办法是排除所有不可见文件,至少根据 Apple 讨论中关于此主题的帖子。
http://discussions.apple.com/thread.jspa?threadID=2398971&tstart=60
答案4
使用的选项rsync
( --exclude-from 'exclude.txt'
) 是正确的语法。只要满足以下条件,它就可以工作:
你的脚本知道在哪里
exclude.txt
位于的内容
exclude.txt
包括以下行:.DS_Store
您的
--exclude-from
选择在调用中被“提前”声明rsync
;换句话说:
# THIS:
/usr/local/bin/rsync --exclude-from 'exclude.txt' -aNHAXv --progress /Volumes/Groups/Projects/483_Modern_Activity_Website/web/youradmin/ /Users/dan/Dropbox/documents/WORK/kinemastik/WEBSITE/youradmin/
# NOT THIS:
/usr/local/bin/rsync -aNHAXv --progress --exclude-from 'exclude.txt' ...
.DS_Store
文件是苹果的瘟疫,最近的观察表明,这种瘟疫正在变得更加严重。