Filesystems
如何檢查文件是否損壞?
是否有任何通用解決方案來檢查文件是否損壞?例如,影片文件是否損壞,壓縮文件是否損壞等。
不,沒有任何通用的解決方案。檢查文件是否損壞的唯一方法是嘗試讀取它;只有知道如何讀取特定格式的軟體才能做到這一點。
您可以做的是使用
file
來辨識文件的類型,然後根據類型選擇合適的程序來檢查文件。你可以寫一個這樣的腳本:# /bin/bash -eu FILENAME=$1 FILETYPE="$(file -b $FILENAME | head -1 | cut -d , -f 1)" case "$FILETYPE" in "gzip compressed data") CHECKER="gunzip -t" ;; # many, many more lines here *) echo "Unknown type: $FILETYPE"; exit 1 ;; esac $CHECKER $FILENAME
但是你需要做很多工作來填寫案例陳述。
可能有人已經編寫了這樣的腳本(或程序),但我不知道。
如果您在某個時間點知道該文件是好的,您可以對其進行校驗和,並在以後使用它進行比較以確保它仍然是完整的。這在媒體之間或跨網路傳輸文件之前很有用。
如果您不了解文件的良好狀態,則沒有通用方法或檢查損壞。只有在每種情況下的特定文件格式才能確定哪些數據損壞或未損壞。