Linux
用於查找和計算所有文件中的字元總數的 Shell 腳本
如何製作一個腳本來查找主目錄中小於 3 天的每個文件,然後計算所有這些文件中的字元總數?
這很簡單:
find ~/ -mtime -3 -exec cat {} + | wc -c
上面發送計數每個文件中每個字元的
wc
計數。如果文件很大,以上將涉及大量從磁碟讀取。如果簡單地添加文件的大小會更有效。獲取文件大小的方法因 Unix 版本而異。但是,如果您的系統支持 linux 風格的
stat
命令,則以下命令將起作用:find . -mtime -3 -type f -exec stat -c%s {} + | awk '{total+=$1} END{print total}'
在上面,
stat -c%s
返回每個文件的大小awk
並將它們相加並報告總數。這消除了完全讀取每個文件的需要。
find ~ -type f -mtime -3 -exec cat {} + | wc -c
-mtime
檢查修改時間。根據您的作業系統和文件系統,創建時間並不容易獲得。修改時間是一個合理的折衷方案。-3
表示少於 3 天(相對於+3
)。其實是72小時。-type f
- 將自己限制在正常文件中。-exec cat {} +
- 呼叫cat
每個匹配的文件,wc -c
:列印字元數。因為我們有來自所有cat
s 的組合輸出,所以這是總數。