rsync
合理的なバックアップのために維持する長い除外パターンのリストを明示的なファイル名とディレクトリ名のリストに変換する方法があるかどうかを確認します。
アプリケーションは、他のアプリケーションに同じリストを使用したい場所です(パターンを追加または削除して更新するたびに)(mksquashfs
)。どちらのツールも、1行に1つのエントリを含む明示的なファイルのリストを除外リストとして指定できますが、パターン構文は詳細に異なります。
変換するリストは、ワイルドカードを含むrsync
。で許可されているすべてのタイプのパターンで構成されていると想定できます。
2つのアプローチを考えることができます。
rsync
フックの下で何が使用されているかを調べてください(単純なシェルグローブではないようですfind
)。rsync
詳細な出力でダミー転送を実行してリストを生成するために使用されます--dry-run
(ここでは除外されたファイルの名前を印刷する方法がわかりません)。
答え1
次のようになります。ここでは、"${other_opts[@]}"
一般的なrsyncパラメータを表します。
rsync --dry-run --debug=FILTER "${other_opts[@]}" /proc/$$/no-such-dir/
除外されたすべてのファイルを印刷する必要があります。
[sender] hiding file .bash_history-27611.tmp because of pattern *.tmp
[sender] hiding file .bash_history-21217.tmp because of pattern *.tmp
[sender] hiding file .bash_history-29735.tmp because of pattern *.tmp
[sender] hiding file .bash_history-20437.tmp because of pattern *.tmp
sedを使って切り取ることができます。
sed '/^\[sender\] hiding file .* because of / {
s/^\[sender\] hiding file \(.*\) because of .*/\1/
p
}
d '
ただし、制御文字を含むファイル名が見つかると、この問題が発生する可能性があります。