我试图为文件夹中的sh文件添加执行权限。为此,我错误地使用了:
find . -print0 -iname '*.sh' | xargs -0 chmod -v 744
输出为:
mode of `.' changed from 0755 (rwxr-xr-x) to 0744 (rwxr--r--)
mode of `./codis.sh' changed from 0644 (rw-r--r--) to 0744 (rwxr--r--)
mode of `./ne fil.sw' changed from 0644 (rw-r--r--) to 0744 (rwxr--r--)
mode of `./.whois1.sh.swo' changed from 0644 (rw-r--r--) to 0744 (rwxr--r--)
mode of `./new file' changed from 0644 (rw-r--r--) to 0744 (rwxr--r--)
mode of `./ezik.sh' changed from 0644 (rw-r--r--) to 0744 (rwxr--r--)
mode of `./.whois1.sh.swp' changed from 0600 (rw-------) to 0744 (rwxr--r--)
mode of `./whois1.sh' retained as 0744 (rwxr--r--)
我现在知道查找部分的正确用法是
find . -iname '*.sh' -print0
因此,我创建了另一个发现,如下所示:
find . \! -iname '*.sh' -print0 | xargs -0 chmod 600
这样我就可以取消对非sh文件的权限(是的,我看到有些文件具有644个权限,而不是600个权限,但是现在已经不重要了)。该命令的输出为:
chmod: cannot access `./ne fil.sw': Permission denied
chmod: cannot access `./.whois1.sh.swo': Permission denied
chmod: cannot access `./new file': Permission denied
chmod: cannot access `./.whois1.sh.swp': Permission denied
我也用过,sudo
但什么都没有...
我看到我对权限的理解不正确...如果我正确理解,我也需要x
目录的权限direc
才能在所述目录中执行命令。
您是当前目录的所有者吗?
—
cuonglm
在更改权限的命令和拒绝输出权限的命令之间,我没有运行任何更改权限的命令。对于我正在其中工作的目录,权限为:
—
user293496 2014年
drw------- 2 joee joee 4096 Jun 24 02:06 scripts
; 我以joee的身份打开终端并尝试了sudo