rsyncを使用してデフォルトでファイルを除外する方法は?

rsyncを使用してデフォルトでファイルを除外する方法は?

rsyncを使用してデフォルトでファイルを除外する方法は?一般的なrsync構文の開始方法は次のとおりです。

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

私は設定ファイルについて多くの言及をしましたが、/etc/rsyncd.confこれはrsyncコマンドよりもデーモンにとってより具体的かもしれません。

上記の基本構文のように、コマンドラインから呼び出すときにrsyncのいくつかの基本的な除外を実行できますか?

答え1

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

例えば

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

# rsync --exclude-from=rsync.excludes

答え2

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

答え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を変更するだけです。

答え4

--exclude "/*" はデフォルトですべてを除外します。例は次のとおりです。

rsync -av --include "bin/" --exclude "/*"/source_dir//dest_dir/

関連情報