【问题标题】:How to run find cmd with NSTask如何使用 NSTask 运行 find cmd
【发布时间】:2012-11-26 15:08:25
【问题描述】:

我正在尝试让以下 find 命令通过 NSTask 工作:

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

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

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

有人知道我做错了什么吗?

【问题讨论】:

  • 你为什么不试试applescript呢?

标签: objective-c nstask


【解决方案1】:

您也可能会发现这样做更容易。

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

当你在终端中调试你的参数时,你可以做一个复制和过去并在它前面添加'find'。

【讨论】:

  • 这不能解决我遇到的 '.git' vs .git 问题,但我明白你的意思。
  • 对,我也应该这么说,哈哈。只是想在未来帮助你。
【解决方案2】:

我认为你必须替换参数

@"'*.git*'"

通过

@"*.git*"

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

【讨论】:

    猜你喜欢
    • 2012-03-13
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多