GNU/Linux >> Linux の 問題 >  >> Linux

特定のファイルを除外しながらrsyncを使用してディレクトリを再帰的にコピーする方法

質問 :rsync を使用しているときに、特定のフォルダー/ファイルを除外しながらフォルダーを再帰的にコピーする方法は?

通常、「cp」コマンドを使用してファイルをコピーしますが、残念ながら「cp」コマンドには「除外」機能がないため、不要なファイルを除外するスクリプトを作成するか、別のツールを使用することができます。 rsync'.

rsync コマンドの man ページから:

$ man rsync
...
  -r, --recursive             recurse into directories
  --exclude=PATTERN           exclude files matching PATTERN

特定のファイル/ディレクトリを除外してディレクトリをコピーする rsync コマンドの構文は次のとおりです:

$ rsync -r --exclude 'file_path' 'SRC' 'DEST'

たとえば、「oracle/oradata/rmanbackup」以外の oracle フォルダーのすべてのファイルを oraclebak にコピーしたくない場合:

$ du -sh oracle/*
40K oracle/extapi
1.1G oracle/oradata                    ------> sub directory of oracle
4.0K oracle/test1
4.0K oracle/test2
4.0K oracle/test3
4.0K oracle/test4
4.0K oracle/test5
# du -sh oracle/oradata/*
4.0K oracle/oradata/date1
4.0K oracle/oradata/date2
4.0K oracle/oradata/date3
4.0K oracle/oradata/date4
4.0K oracle/oradata/date5
1.1G oracle/oradata/rmanbackup  -------> we need to exclude this directory

除外パスは、「SRC」の下のファイルの相対パスです。 「oracle/oradata/rmanbackup」を除外したいのですが、親ディレクトリは oracle であるため、除外パスは「oradata/rmanbackup」です。

# rsync -r --exclude 'oradata/rmanbackup' oracle/ oraclebak
# du -sh oraclebak/oracle/*
40K oraclebak/oracle/extapi
24K oraclebak/oracle/oradata
4.0K oraclebak/oracle/test1
4.0K oraclebak/oracle/test2
4.0K oraclebak/oracle/test3
4.0K oraclebak/oracle/test4
4.0K oraclebak/oracle/test5

オプション「–exclude-from=FILE 」を使用することもできます 除外するファイル/ディレクトリがさらにある場合。その場合、ファイルから除外するファイル/ディレクトリをリストし、オプション「–exclude-from=」にファイル パスを指定するだけです。

# man rsync
--exclude-from=FILE     read exclude patterns from FILE

例:

# rsync -r --exclude-file=/tmp/exclude_list oracle/ oraclebak

ここで、
/tmp/exclude_list には、他のファイルのコピー中に除外されるファイル/ディレクトリのリストが含まれています。


Linux
  1. ファイル拡張子でファイルを再帰的にコピーする方法は??

  2. LinuxでRsyncコマンドを使用するにはどうすればよいですか?

  3. rsyncを使用してファイルを同期する

  1. Linuxでのコピーから特定のディレクトリを除外する方法

  2. bashでインストールを使用してディレクトリをディレクトリにコピーする方法は?

  3. scp はディレクトリを再帰的にコピーできますか?

  1. Linuxでファイルとディレクトリをコピーする方法

  2. rsyncを使用してデータ転送でファイルとディレクトリを除外する方法

  3. scp を使用して複数のファイルを同時にコピーする方法