我想要chmod
特定文件夹内的所有文件夹和子文件夹,但我想排除一个文件夹(及其包含的所有子文件夹)。
到目前为止,我所掌握的是来自 StackOverflow 的以下解决方案:
以下是我目前想到的:
find . -type d \( -path ./node_modules \) -prune -o -print -exec chmod 644 {}\;
问题是,无论有没有,-print
我都会收到以下错误:
发现:缺少“-exec”参数
以下行具有我需要-exec chmod 644{}\;
读取的预期结果:
find . -type d \( -path ./node_modules \) -prune -o -print
我在将数据传输到的那行中遗漏了什么-exec
?
答案1
删除-print
,退出( and )
并在后面添加空格{}
find . -type d \( -path ./node_modules \) -prune -o -exec chmod 644 {} \;
答案2
经过一番尝试后,我发现以下方法对我有用:
chmod
所有文件递归排除文件:
find . -not -path "*/node_modules*" -type f -exec chmod 644 {} \;
chmod
所有文件夹递归排除文件夹:
find . -not -path "*/node_modules*" -type d -exec chmod 755 {} \;
答案3
chmod 所有文件夹递归查找 /opt/git/ -type d -exec chmod 755 {} +
chmod 所有文件递归查找 /opt/git/ -type f -exec chmod 755 {} +
路易斯·马里尼奥