Rsyncを使用してホームディレクトリをバックアップしようとしていますが、迷惑メールを含むディレクトリの一部を除外したいです。 /home/ben/.ccache
と/home/ben/build
を明確に除外したい。残念ながら、rsyncのドキュメントは情報過多であり、私の質問には答えませんでした。これは私が試したものです:
rsync -arv --exclude "/home/ben/.ccache:/home/ben/build" /home/ben /media/ben/thumbdrive/
これを行う正しい方法は何ですか?
OKこの質問を投稿する前に、私の友人がその方法を教えてくれましたが、それは本当に簡単です。複数のディレクトリを除外するには、複数の--exclude=path
スイッチを使用します。したがって、適切に記述された上記の私のコマンドは次のとおりです。
rsync -arv --exclude=.ccache --exclude=build /home/ben /media/ben/thumbdrive/
複数のディレクトリやファイルを除外する場合は、テキストファイルを作成し、--exclude-from
スイッチを使用します。 exclude_me.txt
というファイルを作成し、その中に除外をリストします。例(/home/ben/exclude_me.txt
):
.ccache
build
.Java
.gvfs
.xsession-errors
次に、rsyncは次のようになります。
rsync -arv --exclude-from='/home/ben/exclude_me.txt' /home/ben /media/ben/thumbdrive/
これは、役立つ可能性のあるフィルター規則に関する情報です。
/dir/
は、ルートフォルダーを除外することを意味します/dir
/dir/*
は、ルートフォルダ/dir
を取得するが、コンテンツは取得しないことを意味しますdir/
は、名前にdir/
が含まれるすべてのフォルダーを除外することを意味します
除外される例:/dir/, /usr/share/directory/, /var/spool/dir/ /var/spool/lpd/cf
は、/var/spool/lpd
内の任意のフォルダー内でcf
で始まるファイルをスキップすることを意味します
また、manページの filter rules セクションを参照してください。
中括弧内の複数のパスを除外することもできます。
rsync -arv --exclude={.ccache,build} /home/ben /media/ben/thumbdrive/