我有一个简单的egrep的命令,通过在当前目录中的所有文件搜索包含单词“错误”行:Unix egrep查看文件夹信息?
egrep -i "error" *
该命令也将通过子目录为好。以下是整个文件夹的示例:
/Logfile_20120630_030000_ID1.log
/Logfile_20120630_030001_ID2.log
/Logfile_20120630_030005_ID3.log
/subfolder/Logfile_20120630_031000_Errors_A3.log
/subfolder/Logfile_20120630_031001_Errors_A3.log
/subfolder/Logfile_20120630_031002_Errors_A3.log
/subfolder/Logfile_20120630_031003_Errors_A3.log
顶部目录中的日志文件包含“error”行。但“子文件夹”目录中的日志文件不包含带有“错误”的行。 (只在文件名中)
所以我得到的问题是egrep命令似乎在查看“子文件夹”中的信息。我的结果会得到一块似乎是二进制块的块,然后是顶级文件夹日志文件中包含单词“错误”的文本行。
如果我删除了“子文件夹”下的所有文件,但并未删除文件夹本身,我会得到完全相同的结果。
那么Unix是否在一个文件夹内保存文件历史信息?
该问题已通过运行修正: 查找。 -type f | egrep -i“error”*
但我仍然不明白为什么它是一个问题。我在SunOS上运行C shell。
感谢您的答复。我看到egrep如何将目录当作文件来对待。我只是好奇究竟究竟是怎样追踪历史的。 – 2012-07-13 18:43:33
我也注意到,当你有一个包含文件的目录,然后删除它下面的所有文件时,目录文件大小不会改变。我猜这是我上面提到的同样的历史信息。我想了解更多关于它如何在Unix中工作的信息。我用inode指针猜测它的东西,但我认为删除文件时删除了这些指针。 ??? – 2012-07-13 18:45:53
这些文件确实被删除了(如果没有更多链接,这些文件将被释放);没有保存专用的文件历史记录信息,只是将目录条目标记为空闲,而名称不会被覆盖,所以它们会保留在目录文件中,直到重新使用条目。 – Armali 2014-04-02 13:30:41