Shell:发现应该忽略空白

时间:2011-10-08 07:30:59

标签: shell console find

我有一个shellcript,我从NSTask运行,我是动态构建的。除了一件事,一切都很好:

如果文件名包含空格,则find-command会忽略它。我这样使用它:'find -iname * .xxx'。

如果文件名看起来像'aaa bbb.xxx',那么它就不会找到。

任何帮助表示感谢。

此致 马库斯

2 个答案:

答案 0 :(得分:0)

find并不关心文件名是否包含空格。那不是你的问题。

如果你实际上在问题中输入了它(find -iname *.xxx),那么问题是你需要引用文件名模式以保护它免受shell扩展:find -iname '*.xxx'。注意模式周围的引号;他们是必不可少的。

否则,问题很可能在于您如何处理您要回复的文件名。例如,这不起作用:

for f in `find -iname '*.xxx'`; do
   echo "file: $f"
done

你会看到反引号操作符实际上是在空格上拆分(或实际上是$IFS)并且你得到了两个“文件”:'aaa'和'bbb.xxx'。

答案 1 :(得分:0)

像这样逃离模式:

find -iname '*.xxx' -print

如果有帮助,请考虑+1。感谢