特定权限的测试文件

特定权限的测试文件

我有一个脚本,我想测试一个文件是否有特定的权限,特别是 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" ';'

相关内容