0

我正在编写一个脚本来查找具有相同权限的文件,然后将命令行中的一些可选命令应用于它们。几个小时后,我想出了这段代码

命令行将是这样的:

codename 644 ls -l

脚本是以下代码:

#!/bin/sh
permission=$1
shift
find . -maxdepth 1 -perm $permission exec $* {} \;

我相信 exec 任务在移动第一个命令(此处为 644)后将结果重定向到命令行。如果我错了,请纠正我。我的问题是,当我在命令行中使用 find 行时,它工作得很好,但是在脚本中使用它之后,它给了我一个错误

./codename 664 ls -l find:路径必须在表达式之前:exec 用法:find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec ] [路径...] [表达式]

4

1 回答 1

1

你忘记了$for 权限和-for exec,所以

find . -maxdepth 1 -perm $permission -exec $* {} \;
于 2012-11-07T02:35:18.120 回答