shell脚本中的“find”命令会出错

时间:2012-11-07 02:34:10

标签: shell unix

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

命令行将是这样的:

codename 644 ls -l

,脚本是以下代码:

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

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

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

1 个答案:

答案 0 :(得分:1)

您忘了$获取权限,-忘了exec,所以

find . -maxdepth 1 -perm $permission -exec $* {} \;