rsyncでデフォルトでファイルを除外するにはどうすればよいですか?


12

rsyncでデフォルトでファイルを除外するにはどうすればよいですか?これが私の通常のrsync構文の始まりです。

rsync --exclude ".ht*" --exclude "error_log" --exclude ".DS*" --exclude "old" ...

/etc/rsyncd.confファイルの構成について多くの言及がありましたが、rsyncコマンドよりもデーモンの方が重要かもしれません。

上記のデフォルトの構文のようにコマンドラインから呼び出されたときに、rsyncのデフォルトの除外を設定することは可能ですか?

回答:


10

ファイルに除外を追加してから、--exclude-from = / path / to / exclude_fileを使用します

例えば

# cat rsync.excludes
.ht*
error_log
.DS*
old
...

# rsync --exclude-from=rsync.excludes

1
構文はそうであるように見えますが--exclude-from--exclude-fileそうでない場合はこれがチケットのようです。ありがとう!
cwd

5

いいえ、rsync呼び出し時に読み取るデフォルトの構成ファイルはありません。できる最善の方法は、@ frogstarr78が言っていることで、除外するパターン、ファイル名、ディレクトリ名を含むテキストファイルを作成し、でそれを指すrsyncこと--exclude-from=filenameです。


2
rsync does not have a default configuration file-それは残念です
-cwd

3

rsyncではデフォルトのオプションを設定できませんが、ラッパースクリプトを作成して、rsyncバイナリよりも$ PATHの上位に置くことができます。

これは私の住むrsyncラッパーです ~/bin/rsync

#!/bin/sh

# Set path to the rsync binary
RSYNC=/usr/bin/rsync

# Look for these exclude files
IGNORE_FILES=(~/.rsyncignore ./.gitignore ./.rsyncignore)

EXCLUDE_FROM=""
for f in ${IGNORE_FILES[@]}; do
  if [[ -e $f ]]; then
    EXCLUDE_FROM="$EXCLUDE_FROM --exclude-from=$f "
  fi
done
$RSYNC $EXCLUDE_FROM "$@"

それはのために見てみましょう~/.rsyncignore./.gitignore./.rsyncignoreファイルと、それらのいずれかが存在する場合、デフォルトとしてそれらを使用する--exclude-from引数。

環境と好みに合わせてRSYNCとIGNORE_FILESを変更するだけです。


0

--exclude "/ *"は、デフォルトですべてを除外します。以下に例を示します。

rsync -av --include "bin /" --exclude "/ *" / source_dir / / dest_dir /
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.