强制复制损坏的主目录

Duc*_*uck 7 tar backup rsync home

我的磁盘中有一个主目录,里面有很多损坏的文件。我正在尝试尽可能保存大多数文件。我正在尝试使用以下方法在外部驱动器上创建我的主目录的备份

tar -cvf backup /home/myHome
Run Code Online (Sandbox Code Playgroud)

并且也尝试过

rsync -vfh /home/myHome /media/backup
Run Code Online (Sandbox Code Playgroud)

当发现损坏的文件时,这两种方法都会停止。有没有办法强制一个或另一个继续复制并忽略坏文件,复制所有可能复制的内容并在未复制的文件末尾显示日志?

谢谢。

小智 3

我为此写了一个小脚本

#!/bin/bash
echo "copying from $1"

find $1 -type f -print0 | while read -d $'\0' -r file ; do
    echo Processing "$file"
    target="$2""$file"
    if (test -f "$target") then
        echo File Exists:  "$target"
    else
        echo copying to "$target"
        targetDir=`dirname "$target"`

        if (! [ -d "$targetDir" ]) then
            mkdir "$targetDir"
        fi

        ddrescue -e0 -r0 -v -n "$file" "$target"
        if ([ $? -ne 0 ]) then
            echo Copy failed, deleting "$target"
            rm -f "$target"
        fi
    fi
done
Run Code Online (Sandbox Code Playgroud)