如何在 ruby 代码中同时使用 find ,-exec 和 cp 命令?
How to use find ,-exec and cp commands together in ruby code?
我想在一个文件夹中递归地查找 .plist 文件,然后通过单个终端命令将该文件复制到新文件夹中。
find /Users/admin/Desktop/Norton/StaticAnalysis -iname "*.plist" -exec cp {} /Users/admin/Desktop/Test \;
这是在终端中运行良好的命令。
但我必须在 ruby 代码中使用此命令。
当我在 ruby 代码中使用它时
代码 1:
system ("find /Users/admin/Desktop/Norton/StaticAnalysis -iname \"*.plist\" -exec cp {} /Users/admin/Desktop/Test \;")
puts $?.success?
输出是:
find: -exec: no terminating ";" or "+"
false
代码 2:
system ("find /Users/admin/Desktop/Norton/StaticAnalysis -iname \"*.plist\" -exec cp {} /Users/admin/Desktop/Test \;");
end
puts $?.success?
输出是:
siva.rb:2: syntax error, unexpected keyword_end, expecting end-of-input
所以请帮助我如何在 ruby 代码中使用它。
您是否尝试过 FileUtils 模块 (fileutils.rb)?
它具有用于复制、移动、删除等多种文件实用程序方法的名称空间
system ("find ... -exec ... \;")
ruby 将双引号内的 \;
解释为 ;
。你需要加倍反斜杠
system ("find ... -iname \"*.plist\" -exec ... \;")
或者使用不同的外引号,这意味着你不必转义内引号
system %q{find ... -iname "*.plist" -exec ... \;}
我想在一个文件夹中递归地查找 .plist 文件,然后通过单个终端命令将该文件复制到新文件夹中。
find /Users/admin/Desktop/Norton/StaticAnalysis -iname "*.plist" -exec cp {} /Users/admin/Desktop/Test \;
这是在终端中运行良好的命令。
但我必须在 ruby 代码中使用此命令。
当我在 ruby 代码中使用它时
代码 1:
system ("find /Users/admin/Desktop/Norton/StaticAnalysis -iname \"*.plist\" -exec cp {} /Users/admin/Desktop/Test \;")
puts $?.success?
输出是:
find: -exec: no terminating ";" or "+"
false
代码 2:
system ("find /Users/admin/Desktop/Norton/StaticAnalysis -iname \"*.plist\" -exec cp {} /Users/admin/Desktop/Test \;");
end
puts $?.success?
输出是:
siva.rb:2: syntax error, unexpected keyword_end, expecting end-of-input
所以请帮助我如何在 ruby 代码中使用它。
您是否尝试过 FileUtils 模块 (fileutils.rb)?
它具有用于复制、移动、删除等多种文件实用程序方法的名称空间
system ("find ... -exec ... \;")
ruby 将双引号内的 \;
解释为 ;
。你需要加倍反斜杠
system ("find ... -iname \"*.plist\" -exec ... \;")
或者使用不同的外引号,这意味着你不必转义内引号
system %q{find ... -iname "*.plist" -exec ... \;}