「--exclude-from」が「tar」ファイルと一致するかどうかをデバッグ/検証する方法は?

「--exclude-from」が「tar」ファイルと一致するかどうかをデバッグ/検証する方法は?

このコマンドtarには1つのオプションがあります--exclude-from

   -X, --exclude-from=FILE
          Exclude files matching patterns listed in FILE.

としてリストする方法FILE

私は私のホームディレクトリをバックアップするスクリプトを作成していますが、誤って重要なことを見落としたくありません。

答え1

圧縮したい場合、一部のtarコマンドはその操作に最適化されています/dev/null

tar cvf /dev/null . >/tmp/a

.実際にデータを読み取ることなく、すべてのファイルのリストが生成されます。私の10Gの家では3秒かかりましたが、これはfind

したがって、上記のタスクを実行してから除外リストに対して同じタスクを実行し、/tmp/bその間diffにタスクを実行して何が欠落しているかを確認できます。

sortまたは、各出力をパイプし、除外されたファイルのみをインポートcomm -3 /tmp/a /tmp/bするために使用します。

答え2

while read -r pattern; do
    printf 'Pattern: "%s"\n' "$pattern"
    echo 'Matches:'
    find . -path "$pattern" -print
done <patterns

その後、ファイルの各パターンを取得し、patterns現在のディレクトリのどの名前が一致するかを報告します。

答え3

tarと一致するパターンを別の方法で見つけるので、これは難しいかもしれません。しかし、おそらく次のようなものを探しているかもしれません。

for pattern in $(cat FILE)
do
    find $HOME -path "*$pattern*"
done

関連情報