是否有一个简洁的 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 仅对该目录中的文件进行操作。