我正在编写一个脚本来查找具有相同权限的文件,然后从命令行向它们应用一些可选命令。几个小时后,我想出了这段代码
命令行将是这样的:
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 ...] [表达式]
答案 0 :(得分:1)
您忘了$
获取权限,-
忘了exec
,所以
find . -maxdepth 1 -perm $permission -exec $* {} \;