2013-06-29 30 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

總是把引號! –