我试图找出以下命令会做什么。我从Linux shell脚本中提取它,当我输入它时会进入提示符(>)。但我无法弄清楚在这个提示中要输入什么。
find ~/dev/tools/flex-4.5.0.20967 -type d -exec chmod o+rx '{}' \
我在这里知道find命令的目的。它正在搜索指定的目录,检查它是否确实是一个目录并在该目录上执行chmod命令。我无法弄清楚的是chmod命令的格式。
我检查了chmod的man页面,但无法确定上述chmod格式的功能。
感谢。
答案 0 :(得分:5)
查看find
的手册页。 {} \;
特定于-exec
find
标记
>提示出现因为你错过了';'在'\;'
的末尾find ~/dev/tools/flex-4.5.0.20967 -type d -exec chmod o+rx '{}' \;
该命令查找~/dev/tools/flex-4.5.0.20967
下的所有子目录。如果没有-type d
,它还会包含文件夹下的文件。
-exec my_command my_args1 my_args2 '{}' \;
部分通过find为每个匹配的结果指定,执行命令my_command
:
my_command my_args1 my_args2 matched_result
{}
将替换为匹配的结果,在本例中为目录,\;
表示my_command
的参数终止
答案 1 :(得分:3)
chmod
:“更改模式”,通常用于设置或更改文件权限。
o +添加“其他”的权限(其他可能的值是u(用户)和g(组)with - (删除)
r读取权限
x执行权限 (其他可能的值包括w - 写权限)
{}
是find
用来表示“在此处插入当前文件名”的设备。
答案 2 :(得分:1)
要检查的手册页是find命令。 chmod适用于find命令产生的每个目录。因此,要告诉chmod命令中放置目录的位置,请使用“{}”语法指示。
例如,将find命令产生的每个.txt文件移动到〜/ backup目录:
find . -name "*.txt" -exec mv '{}' ~/backup \;
希望这有帮助。
答案 3 :(得分:0)
find命令搜索〜/ dev / tools / flex-4.5.0.20967中的所有子目录。对于每个找到的目录,它都会在其上执行chmod o+rx '{}'
。 “{}”符号将替换为当前找到的子目录名称。