如何使用NSTask运行find命令

时间:2012-12-08 17:36:50

标签: objective-c nstask

我正在尝试通过NSTask获取以下find命令:

find /Users/user/projects ! -path '*.git*' -ctime -1

但是我无法让忽略路径部分工作。在终端,它工作正常。我得到了最近24小时的修改过的文件,不包括.git目录。 使用NSTask时,.git目录不会被忽略,导致太多积极的...... 我使用以下args:

NSArray *args = @[@"/Users/user/projects", @"!", @"-path", @"'*.git*'", @"-ctime", @"-1"];

有人知道我做错了吗?

2 个答案:

答案 0 :(得分:2)

您可能还会发现它更容易。

NSString *argString = @"/Users/user/projects ! -path '*.git*' -ctime -1";
[nsTaskName setArguments: [argString componentsSeparatedByString: @" "]];

当您在终端中调试参数时,您只需复制并过去并在其前添加“查找”。

答案 1 :(得分:1)

我认为你必须替换参数

@"'*.git*'"

通过

@"*.git*"

否则find将仅忽略名为'*.git*'的文件(逐字)。请注意,在终端中执行命令时,shell会删除单引号。