无法将查找命令的结果保存在文件中 - 文件为空
程序应该找到一个文件并返回它是否存在于系统中,现在我发现应该使用find命令,但是因为这样命令将启动的代码(使用系统)我需要将结果保存在一个文件中,并尝试在终端上,我不能得到它的工作,结果不会出现在该文件中,我试图:无法将查找命令的结果保存在文件中 - 文件为空
find/-name 'test2abc' 2>/dev/null -> res
文件res是空的。如何做到这一点?
还有一个更好的方法来做到这一点,如果文件存在,我应该使用stat命令打印文件的细节。有没有办法使用juts stat命令来搜索子文件夹中的文件?
-> res
部分只应该是> res
。
如果您尝试这样的命令,在命令行:
find/-name 'test2abc' -> res
将打印错误:
find: paths must precede expression: -
的-
没有任何有效的重定向的一部分,因此给予find
哪些也不能解释它。
明智的是不要压制错误消息。一个简单的方法可以既重定向stderr和标准输出到文件是这样的:
find/-name 'test2abc' > res 2>&1
然后对-
错误本来在文件中直接从你,你会知道什么`错了非常快的开始。
它工作正常,非常感谢。但是为什么 - > res在这种情况下不起作用? – SpeedBirdNine
@SpeedBirdNine:' - >'不是shell写入重定向的方式,'>'是。所以'-'被传递给查找作为参数,这是产生一个错误(或者,如果你没有将stderr重定向到/ dev/null) – derobert
@SpeedBirdNine我增强了这篇文章。好? –
如果你只是想要统计文件,看看'find'的'-exec'参数。 – derobert
为什么在这个问题上有一个offtopic近距离投票????????? – SpeedBirdNine