
このコマンド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