2013-06-29 43 views
0

我用下面的bash脚本,但得到以下傻错误的bash脚本:与路径名未能

Fixing perms on /Volumes/Volume-B/IMAGES/Prostock scans/ 
chmod: Failed to set ACL on file '/Volumes/Volume-B/IMAGES/Prostock': No such file or directory 
chmod: Failed to set ACL on file 'scans/': No such file or directory 
chmod: Unknown tag type 'inherited' 

这里是我的脚本:

#!/bin/bash 

PATH=/bin:/usr/bin:/sbin:/usr/sbin export PATH 
DEST=/Volumes/Volume-B/IMAGES/Prostock\ scans/ 

echo Fixing perms on $DEST 
chmod -R +a "user:administrator allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" $DEST 

chmod -R +a "user:icadmin inherited allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,file_inherit,directory_inherit" $DEST 

echo Done! 

注意我裹$ DEST在“Prostock”之后带有和不带反斜杠的单引号和双引号,并得到相同的错误。

建议最受赞赏!

+1

设置双引号 – suspectus

+0

一旦你纠正一个错误优秀(周围没有'$ DEST'报价,这应该是'“$ DEST”'...或者,如果你是以下约定和使非环境变量小写,'“$ dest”'),这成为一个关于OS X的chmod的问题,而不是关于bash。 –

+0

......要清楚 - “没有这样的文件或目录”错误(其中有两个)是由缺少引号引起的; “未知标记类型”是关于OS X的chmod版本的问题,因为大多数操作系统完全不支持通过chmod命令的ACL,而是使用诸如'satfacl'之类的工具。 –

回答

1

你有没有尝试把双引号将$DEST变量?围绕CHMOD $ DESTs

chmod -R +a "user:icadmin inherited allow...." "$DEST" 
+0

哎呀,刚才看到你对双引号的评论... – dougEfresh

+0

其实,放在“$ DEST”周围的引号应该在chmod命令上工作 – dougEfresh

+1

总是把引号! –