列出 rdiff-backup 中已删除的文件

列出 rdiff-backup 中已删除的文件

我如何列出已删除的文件以及发生此情况的增量?

我编写了一个笨拙而缓慢的 shell 脚本,但我认为一定有更好的方法:

#!/bin/bash -e

# helper tool für rdiff-backup
# see https://serverfault.com/questions/983941/list-deleted-files-from-rdiff-backup

inc_dates=($(rdiff-backup --list-increments "$1" | tail -n+2 | head -n-1 | cut -d "." -f2))
total=${#inc_dates[*]}

for (( i=0; i<$(( $total )); i++ ))
do
  tmplist[$i]=$(tempfile);
  rdiff-backup --list-at-time "${inc_dates[$i]}" "$1" | sort > "${tmplist[$i]}"
  if [ "$i" -gt 0 ]; then
    deleted=($(comm -2 -3 "${tmplist[$i-1]}" "${tmplist[$i]}"))

    nr=${#deleted[*]}

    if [ "$nr" -gt 0 ]; then
      echo "$nr file(s) deleted between ${inc_dates[$i-1]} and ${inc_dates[$i]}:"
      printf '%s\n' "${deleted[@]}"
    fi

  fi
done

相关内容