Files
是否有命令行方法可以檢查下載的文件是否完整或損壞?
我正在編寫一個涉及下載和操作文件的腳本,並且我想在處理之前確保該文件不完整(例如由於連接斷開)。
驗證下載文件完整性的最常用方法是使用 MD5 校驗和。這假定您正在從其文件的實際發布的 MD5 校驗和下載的站點。您可以通過為下載的文件創建自己的校驗和並將其與發布的校驗和進行比較來驗證 MD5 校驗和。如果它們相同,則您下載的文件是完整的並且沒有被篡改。
如果您不希望正在下載的文件發生更改,您可以預先計算校驗和並將其硬編碼到腳本中,但如果文件已更新,則驗證將失敗。
要創建文件的 MD5 校驗和,請執行
md5sum myFile
. 對於 wget,您可能會發現此命令很有用,尤其是在您下載的文件很大時:
wget -O - http://example.com/myFile | tee myFile | md5sum > MD5SUM
.這將在下載時創建“myFile”的校驗和並將其保存到文件 MD5SUM 中,可能會為您節省一些時間。
在連接斷開的情況下,我認為最好的方法是檢查 wget 的退出程式碼。如果下載成功且沒有任何錯誤,wget 將返回
0
。其他任何事情都表明出了問題。看一下“退出狀態”部分man wget
。