作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图通过制作一个简单的 bash for
循环来更改所有子目录的权限:
for dir in `find . -type d`; do chmod 755 "$dir"; done
然而,它提示不存在的目录。通过简单地打印循环中的目录名称(将 chmod 755 "$dir"
替换为 echo "$dir"
),我发现问题发生在目录时名称中有空格。 for
循环会在每个换行符 和 空格上拆分 find
的结果。
我想以某种方式让它根据换行符仅拆分结果并忽略空格。双引号应确保字符串作为一个参数到达 chmod
。如何更改拆分?
最佳答案
这个问题通常的解决方法是:
find ... -print0 | xargs -0 ...
-print0
参数导致输出文件名以 nul 结尾,而 xargs 的 -0
/-null
参数告诉它阅读这样的格式。
所以在你的情况下......
$ find . -type d -a -print0 | xargs -0 chmod 755
您实际上根本不需要 shell 循环。
关于bash - 当目录名称中有空格时使用查找结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15030057/
概述 CentOS Stream 成立于 2019 年,是“RHEL 下一步的滚动预览”。Red Hat 首席技术官 Chris Wright 和 CentOS 社区经理 Rich Bowen 各
我有一个使用 Mesosphere DC/OS 编排选项进行配置的 Azure 容器服务 (ACS) 集群。我可以在 Marathon UI 中创建一个应用程序。 但是,当我通过 Marathon U
我是一名优秀的程序员,十分优秀!