首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行-exec命令有什么问题?

执行-exec命令有什么问题?
EN

Ask Ubuntu用户
提问于 2014-09-19 07:08:10
回答 3查看 805关注 0票数 1

我在执行命令时出错了。

代码语言:javascript
复制
cd /opt/lampp/htdocs/EspoCRM-2.5.2 && find data -type d -exec chmod 775 {}

错误:

代码语言:javascript
复制
find: missing argument to `-exec'
EN

回答 3

Ask Ubuntu用户

回答已采纳

发布于 2014-09-19 07:19:31

您需要将您的执行部分标记为使用\;完成,您的命令如下所示:

代码语言:javascript
复制
cd /opt/lampp/htdocs/EspoCRM-2.5.2 && find data -type d -exec chmod 775 {} \;

顺便说一句:你不需要把它刻录成点唱机。查找可以走一条完整的路径到哪里去搜索。所以

代码语言:javascript
复制
find /opt/lampp/htdocs/EspoCRM-2.5.2/data/ -type d -exec chmod 775 {} \;

也应该像查找调用一样工作。

票数 5
EN

Ask Ubuntu用户

发布于 2014-09-19 10:08:00

正如其他人所说的,需要终止find的-exec。然而,我实际上建议使用+而不是\;。这只适用于某些命令,但是使用+可以构建和运行一个更高效的命令。

例如,如果一个目录中有三个文件(abc),并且运行了find -exec echo {} \;,那么它将执行:

代码语言:javascript
复制
echo a
echo b
echo c

但是,如果使用find -exec echo {} +,它将动态地选择环境支持的尽可能多的参数(有一个限制),并且像xargs一样将它们链接在一起.所以实际运行的是:

代码语言:javascript
复制
echo a b c

正如我前面说过的,只有当命令一次支持多个文件时,这才能工作。chmod就是其中之一。您可以通过查看man chmod页面来判断:

代码语言:javascript
复制
SYNOPSIS
       chmod [OPTION]... MODE[,MODE]... FILE...
       chmod [OPTION]... OCTAL-MODE FILE...
       chmod [OPTION]... --reference=RFILE FILE...

FILE...上的省略号表示它可以接受多个文件。

所以是的,将它们链接在一起意味着我们运行的chmod实例要少得多,这是很好的,因为有相当大的开销(在这样的小操作上)来分叉出一个新命令。

简而言之,使用+更快。

票数 3
EN

Ask Ubuntu用户

发布于 2014-09-19 07:24:58

您需要用\;结束命令

试试这个:

代码语言:javascript
复制
cd /opt/lampp/htdocs/EspoCRM-2.5.2 && find data -type d -exec chmod 775 {} \;
票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/525890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档