rsync でスペース入りディレクトリ名を弾きたい。


お世話になります。
きょうは rsync でリモート・バック・アップを取るときに --exclude-from でスペースの入ったディレクトリ名を弾くのに失敗し、これを克服するにはどうすればいいかの質問です。

スクリプトから抜粋すると以下のような次第です。


backup.sh:
#!/bin/bash

NOW=`date +"%Y%m%d-%H-%M"`
LATEST=`date -v-1H +"%Y%m%d-%H-%M"`

RSYNC="/usr/bin/sudo /usr/bin/rsync"

INCLUDES="/etc/hoge.includes"
EXCLUDES="/etc/hoge.excludes"

SOURCE="/Volumes/hoge\\ HD/"
DESTINATION="/Volumes/hoge\\ HD\\ BK\\ 1/$NOW/"

rsync \
--rsync-path="$RSYNC" \
--archive \
--exclude-from=$EXCLUDES \
--numeric-ids \
--link-dest=../$LATEST $SOURCE $DESTINATION


hoge.excludes:

foo
bar\ bar


上記のように"\ "のようにスペースを指定しても、バラバラの文字列として認識してしまっているように見えます。このような場合に問題を解決するには、どうしたらよいのでしょうか?

以上、宜しくお願いします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/04/12 04:13:10
  • 終了:2013/04/12 10:07:35

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4595ベストアンサー獲得回数19342013/04/12 08:54:40

ポイント100pt

空白を指定するズバリの方法ではありませんが、ファイル名マッチのワイルドカードが使えます。

hoge.excludes:

foo
bar?bar

ただ、これだと空白以外にもマッチしてしまいます。
もし、それが問題になる場合には、空白以外のケースを include のパターンに含めます。
パターンが "+ " で始まる行は exclude 中にあっても include パターンとして解釈されるので、例えば以下のような感じ。

hoge.excludes:

foo
bar?bar
+ bar[A-Za-z0-9]bar

参考URL: http://www.infoscience.co.jp/technical/rsync/rsync.html#exclude

id:renpoo

ありがとうございます。なんとか、この方法で回避できました。助かりました。

2013/04/12 10:06:29

その他の回答(1件)

id:a-kuma3 No.1

a-kuma3回答回数4595ベストアンサー獲得回数19342013/04/12 08:54:40ここでベストアンサー

ポイント100pt

空白を指定するズバリの方法ではありませんが、ファイル名マッチのワイルドカードが使えます。

hoge.excludes:

foo
bar?bar

ただ、これだと空白以外にもマッチしてしまいます。
もし、それが問題になる場合には、空白以外のケースを include のパターンに含めます。
パターンが "+ " で始まる行は exclude 中にあっても include パターンとして解釈されるので、例えば以下のような感じ。

hoge.excludes:

foo
bar?bar
+ bar[A-Za-z0-9]bar

参考URL: http://www.infoscience.co.jp/technical/rsync/rsync.html#exclude

id:renpoo

ありがとうございます。なんとか、この方法で回避できました。助かりました。

2013/04/12 10:06:29
id:JULY No.2

JULY回答回数966ベストアンサー獲得回数2472013/04/12 09:52:24

"--exclude-from" に指定したファイルの中身を変更できるのなら、スペースの前に「\」を入れれば OK のはずです。
Using 'rsync --exclude-from' to Exclude Files Containing Spaces - Raam Dev

他1件のコメントを見る
id:JULY

すみません、最後の方を読み落としていました。あ゛ぁ....。

2013/04/12 10:51:53
id:renpoo

それなら OK です。
以後、お気をつけを。(^^)

2013/04/12 10:56:58

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません