我有一個簡單的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