フィルターは、バックアップするノで使用するテキストファイルです。正しい書式で記述すると、バックアップ対象のファイルを細かく指定することができます。
フィルターは、バックアップタスク作成、変更画面の下端で指定します。参照ボタンを押すと、「開く」画面でフィルターファイルを対話的に選択できます。
確認ボタンを押すと、フィルターファイルの読み込み結果を表示させることができます。
バックスラッシュ (\
) は日本語 Windows では、¥
と表示されることが多いです※。また、バックスラッシュはスラッシュ
(/
)
と似ていますが、傾きの方向が違います。混同しないように注意してくださいね。
※ 正確には、フォントによって変わりますが、ディフォルトの状態では ¥ で表記されると思います。半角のバックスラッシュと円記号は同じ文字コードなので、プログラム的には同じ文字として扱われます。以降の説明でバックスラッシュが表示されている場合、¥
のことだと、思ってください。
おそらく例で説明した方が早いので、まずは除外するファイルを指定する例です。
- ^backup/$
バックアップ元のフォルダー直下にある backup フォルダーを除外するフィルターファイルの例です。行頭の
-
は除外を表し、空白文字に続けて除外するファイルのパターンを 正規表現 で表します。^
は、マッチ対象の先頭を表します。^
が無い場合、backup
で終わる全てのフォルダーにマッチします。/
はパスの区切りを表します。Windows では、パスの区切り文字は
\
で表わすので、バックアップするノでもそうです。ただし、
バックアップするノの正規表現では、/
を
\
と見なす機能があるので、rsync のように
/
が使えます。\
は正規表現では
\\
と記述する必要があるので、/
の方が便利です。
最後に、$
は末尾を表します。バックアップするノでは、フォルダーは
\\
で終わるパスで表現されるので、/$
は明示的にフォルダーを指定するのに使えます。
フィルターは、フォルダーに適用された後、その子に適用されます。なので、フォルダーが除外された場合、子孫のフォルダーやファイルは全てコピーされません。上の例では、backup の子孫のファイルやフォルダーは、バックアップ対象とはならず、フィルター処理も走りません。また、現在のところ、バックアップ対象ファイルやフォルダーを含まないフォルダーはコピーされません。すなわち、空フォルダーは作成されません。
各フォルダー、ファイルパスは、上の行のフィルターからマッチが行われ、マッチした時点で終了します。フィルターファイルを指定していない場合に、全てバックアップ対象となることからわかるように、マッチする行が無い場合は、バックアップ対象となります。
/
は
\
を表します。\
は 正規表現 では、\\
と表す必要がありますが、\
を使うと1文字で済みます。バックアップするノで採用している正規表現は「普通」のものですが、/
を
\\
と見なすことだけが例外です。
この拡張機能を知らなくても、
\
は
\\
で表せばよいので、普通の正規表現と理解していても問題ありません。また、/ でパスの区切りを表す機能は rsync とも共通しているので、逆にわかりやすい拡張だと思います。
必要なファイルを 正規表現 で表し、それ以外をバックアップしない記述例です。拡張子が
h
のファイル (末尾が .h のファイル) を全てコピーする例を用意しました。
+ /$ + \.h$ - .
逆に、最後の行から説明します。最後の行は、全てのファイルやフォルダーを除外するコードです。正規表現の
2 行目では、拡張子が
.
を
\.
と表します。.
は特殊な意味を持つためです。\
はその後に続く文字の「特殊な意味を打ち消す」効果があります※。
※ このことを、プログラミング用語で、エスケープすると言います。\
自体も特殊な意味を持つので、\
文字を表すには
\\
と記述します。
最初の行は、全てのフォルダーをバックアップ対象とするコードです。上で説明したように、フォルダーが除外されると、子孫のファイルは全くコピーされなくなるためです。
# .h (ヘッダーファイル) のみをコピーします!! + /$ + \.h$ - .
#
で行を始めると、コメント(自分用のメモ)と見なされ、無視されます。また、空行 (半角スペース、タブのみの行) も無視されます。
+
、-
の後に空白文字、続けて 正規表現 です。
\\
を /
で代用できます。
\
です。
ご意見・ご要望などは
フォームメール
から送信してください。
更新情報は、
ブログ
でも配信してます。