NHK受信料を払わない方法・【正々堂々と受信料払わない方法】 YouTube
目次:
Rsyncは、リモートシェルを介して2つの場所の間でファイルとフォルダーを同期する高速で汎用性の高いコマンドラインユーティリティです。
Rsyncを使用すると、データをミラーリングし、増分バックアップを作成し、システム間でファイルをコピーできます。 データをコピーする場合、名前または場所に基づいて1つ以上のファイルまたはディレクトリを除外することができます。
このチュートリアルでは、rsyncを使用してファイルとディレクトリを除外する方法を示します。
あなたが始める前に
rsyncの仕組みに関する基本的な知識が必要です。
以下の例では、
-a
オプションを
-a
してrsyncを使用します。 これにより、rsyncはディレクトリを再帰的に同期し、特別なデバイスとブロックデバイスを転送し、シンボリックリンク、変更時間、グループ、所有権、アクセス許可を保持します。
ファイルまたはディレクトリを除外するときは、ソースディレクトリへの相対パスを使用する必要があります。
除外するファイルとディレクトリを指定するには、2つのオプションがあります。
- コマンドライン
--exclude-from
オプションを使用--exclude-from
ます。 ファイル--exclude-from
オプションを使用--exclude-from
ます。
特定のファイルを除外する
特定のファイルを除外するには、ファイルへの相対パスを
--exclude
オプションに渡します。
次の例では、ファイル
src_directory/file.txt
は転送されません。
rsync -a --exclude 'file.txt' src_directory/ dst_directory/
特定のディレクトリを除外する
特定のディレクトリを除外することは、ファイルを除外することと同じです。以下に示すように、ディレクトリへの相対パスを
--exclude
オプションに渡すだけです。
rsync -a --exclude 'dir1' src_directory/ dst_directory/
rsync -a --exclude 'dir1/*' src_directory/ dst_directory/
複数のファイルまたはディレクトリを除外する
複数のファイルまたはディレクトリを除外するには、複数の
--exclude
オプションを指定します。
rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude 'dir2' src_directory/ dst_directory/
rsync -a --exclude={'file1.txt', 'dir1/*', 'dir2'} src_directory/ dst_directory/
除外するファイルやディレクトリの数が多い場合、複数の
--exclude
オプションを使用する代わりに、ファイルで除外するファイルやディレクトリを指定して、そのファイルを
--exclude-from
渡すことができます。オプション。
次のコマンドは、上記のコマンドとまったく同じです。
rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/
exclude-file.txt
パターンに基づいて複数のファイルまたはディレクトリを除外する
rsyncを使用すると、ファイルまたはディレクトリ名に一致するパターンに基づいてファイルおよびディレクトリを除外することもできます。
たとえば、すべての
.jpg
ファイルを除外するには、次を実行します。
rsync -a --exclude '*.jpg*' src_directory/ dst_directory/
特定のパターンに一致するものを除く、他のすべてのファイルとディレクトリを除外するのは少し面倒です。
.jpg
終わるファイルを除く、他のすべてのファイルとディレクトリを除外するとします。
1つのオプションは、次のコマンドを使用することです。
rsync -a -m --include='*.jpg' --include='*/' --exclude='*' src_directory/ dst_directory/
複数の包含/除外オプションを使用する場合、最初の一致ルールが適用されます。
-
--include='*.jpg'
最初にすべての.jpg
ファイルを含めます。--include='*/'
-次に、src_directory
ディレクトリ内のすべてのディレクトリを含めます。 これがないと、rsyncは最上位ディレクトリにある*.jpg
ファイルのみをコピーします。-m
空のディレクトリを削除します。
別のオプションは、findコマンドの出力をrsyncにパイプすることです。
find src_directory/ -name "*.jpg" -printf %P\\0\\n | rsync -a --files-from=- src_directory/ dst_directory/
-
-printf %P\\0\\n
-src_directory/
をファイルパスから削除します。--files-from=-
は、標準入力(findコマンドから渡されたファイル)のファイルのみを含めることを意味します。
結論
このチュートリアルでは、Rsyncでデータを転送するときにファイルとディレクトリを除外する方法を学びました。 Rsyncの詳細については、Rsyncユーザーマニュアルページをご覧ください。