chmod o + rx'{}'的含义

时间:2012-10-11 08:57:23

标签: linux shell ubuntu ubuntu-12.04

我试图找出以下命令会做什么。我从Linux shell脚本中提取它,当我输入它时会进入提示符(>)。但我无法弄清楚在这个提示中要输入什么。

    find ~/dev/tools/flex-4.5.0.20967 -type d -exec chmod o+rx '{}' \

我在这里知道find命令的目的。它正在搜索指定的目录,检查它是否确实是一个目录并在该目录上执行chmod命令。我无法弄清楚的是chmod命令的格式。

我检查了chmod的man页面,但无法确定上述chmod格式的功能。

感谢。

4 个答案:

答案 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 '{}'。 “{}”符号将替换为当前找到的子目录名称。