如何更改文件夹的权限但不更改文件的权限?

如何更改文件夹的权限但不更改文件的权限?

是否有一个简洁的 Linux 命令(可以在 OSX 上运行)来更改文件夹及其所有内容的权限,但保持当前目录中的文件不变?例如:

/parent/folder1 <-更改权限
/parent/folder2 <-更改权限
/parent/folder3 <-更改权限
/parent/folder3/file1 <-更改权限
/parent/folder3/file2 <-更改权限
/parent/file1 <-不更改权限
/parent/file2 <-不更改权限

答案1

我认为您需要运行 2 个命令。以下是其中一种方法:

# find . -mindepth 1 -type d | xargs chmod 700
# find . -mindepth 2 | xargs chmod 700

第一个命令执行当前目录级别及更深层次的目录。第二个命令执行当前目录之下的所有文件和目录。

答案2

这将更改当前目录中每个目录以及其中的所有文件和文件夹的权限,我想这就是您想要的,但要小心,因为存在递归......

find . -maxdepth 1 -type d -exec chmod -R 700 {} \;

答案3

您可以使用find这个或者用循环来for

for directory in parent/*; do if [ -d $directory ]; then chmod -R 700 $directory; fi ;done

答案4

find  . -type d -mindepth 1 -print -exec chmod 755 {}/* \;

查找当前目录的每个子目录(-type d 和 -mindepth 1),并对找到的每个目录中的所有文件运行 chmod。

{}指的是 find 正在评估的目录,并/*告诉 chmod 仅对该目录中的文件进行操作。

相关内容