鉴于这一段 bash:
PARMS='-rvu'
PARMS+=" --delete --exclude='.git'"
echo $PARMS
rsync ${PARMS} . ${TARGET}
Run Code Online (Sandbox Code Playgroud)
回显按预期显示 PARMS 字符串,未显示任何错误,但 rsync 静默地运行,就好像由 += 添加的选项不存在一样。但是,这按预期工作:
PARMS='-rvu'
rsync ${PARMS} --delete --exclude='.git' . ${TARGET}
Run Code Online (Sandbox Code Playgroud)
我想我用 bash 引号搞砸了一些东西(这些引号总是有问题),但不确定是什么以及为什么忽略选项,即使字符串似乎已正确构建。
ls -sh
自 1997 年左右以来,我一直在使用检查文件大小,但今天发生了一些奇怪的事情:
ninja@vm:foo$ ls -sh
total 98M
1,0M app
64M app_fake_signed.sbp
800K loader
804K loader_fake_signed.sbp
1,0M web
32M web_fake_signed.sbp
Run Code Online (Sandbox Code Playgroud)
在app
和web
文件不应该比他们的同行签署的要小得多,而且我花了几个小时的调试签约程序。一无所获后,我偶然查看了 Samba 共享中的文件,发现它们的大小非常相似。我再次检查:
ninja@vm:foo$ ls -lh
total 98M
-rw-rw-r-- 1 ninja ninja 63M lut 4 14:13 app
-rw-rw-r-- 1 ninja ninja 64M lut 4 14:13 app_fake_signed.sbp
-rw-rw-r-- 1 ninja ninja 800K lut 4 14:13 loader
-rw-rw-r-- 1 ninja ninja 801K lut 4 14:13 loader_fake_signed.sbp
-rw-rw-r-- 1 ninja ninja 31M lut 4 14:13 web
-rw-rw-r-- …
Run Code Online (Sandbox Code Playgroud)