我有一个脚本,我想测试一个文件是否有特定的权限,特别是 0644,如果不是,那么就对其进行 chmod。
我知道我可以对其进行 chmod 并让它通过,以防它已经是那样,但我想打印一条有关它之前值的消息。
答案1
MYFILE=./myfile
为了便于阅读,我使用u=rw,go=r
而不是八进制0644
。我假设您希望设置缺少的权限,但如果存在额外的权限,您希望让它们保持原样。一步一步:
PREV_PERM="`find \"\$MYFILE\" \! -perm -u=rw,go=r -ls`"
echo "$PREV_PERM"
chmod u+rw,go+r "$MYFILE"
或者将其组合成简洁的一行代码:
find "$MYFILE" '!' -perm -u=rw,go=r -ls -exec chmod u+rw,go+r "$MYFILE" ';'