Filesystems

如何檢查文件是否損壞?

  • June 17, 2011

是否有任何通用解決方案來檢查文件是否損壞?例如,影片文件是否損壞,壓縮文件是否損壞等。

不,沒有任何通用的解決方案。檢查文件是否損壞的唯一方法是嘗試讀取它;只有知道如何讀取特定格式的軟體才能做到這一點。

您可以做的是使用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

但是你需要做很多工作來填寫案例陳述。

可能有人已經編寫了這樣的腳本(或程序),但我不知道。

如果您在某個時間點知道該文件是好的,您可以對其進行校驗和,並在以後使用它進行比較以確保它仍然是完整的。這在媒體之間或跨網路傳輸文件之前很有用。

如果您不了解文件的良好狀態,則沒有通用方法或檢查損壞。只有在每種情況下的特定文件格式才能確定哪些數據損壞或未損壞。

引用自:https://unix.stackexchange.com/questions/15157