无法将查找命令的结果保存在文件中 - 文件为空

问题描述:

程序应该找到一个文件并返回它是否存在于系统中,现在我发现应该使用find命令,但是因为这样命令将启动的代码(使用系统)我需要将结果保存在一个文件中,并尝试在终端上,我不能得到它的工作,结果不会出现在该文件中,我试图:无法将查找命令的结果保存在文件中 - 文件为空

find/-name 'test2abc' 2>/dev/null -> res 

文件res是空的。如何做到这一点?

还有一个更好的方法来做到这一点,如果文件存在,我应该使用stat命令打印文件的细节。有没有办法使用juts stat命令来搜索子文件夹中的文件?

+0

如果你只是想要统计文件,看看'find'的'-exec'参数。 – derobert

+0

为什么在这个问题上有一个offtopic近距离投票????????? – SpeedBirdNine

-> res部分只应该是> res

如果您尝试这样的命令,在命令行:

find/-name 'test2abc' -> res 

将打印错误:

find: paths must precede expression: - 

-没有任何有效的重定向的一部分,因此给予find哪些也不能解释它。

明智的是不要压制错误消息。一个简单的方法可以既重定向stderr和标准输出到文件是这样的:

find/-name 'test2abc' > res 2>&1 

然后对-错误本来在文件中直接从你,你会知道什么`错了非常快的开始。

+0

它工作正常,非常感谢。但是为什么 - > res在这种情况下不起作用? – SpeedBirdNine

+1

@SpeedBirdNine:' - >'不是shell写入重定向的方式,'>'是。所以'-'被传递给查找作为参数,这是产生一个错误(或者,如果你没有将stderr重定向到/ dev/null) – derobert

+1

@SpeedBirdNine我增强了这篇文章。好? –