Linuxでディレクトリの階層を指定してコピーする方法

この記事では、Linux環境でディレクトリの階層を指定してコピーする方法について詳しく解説します。`cp`コマンドと`rsync`コマンドを用いた基本的な方法から、スクリプトを用いた自動化まで、具体的なコード例とその解説、応用例を含めています。

目次

基本概念: cpコマンドとrsyncコマンド

Linuxでは、`cp`コマンドと`rsync`コマンドがディレクトリやファイルのコピーに広く用いられます。特に、`rsync`はリモートサーバとのデータの同期にも使える高機能なコマンドです。

cpコマンドの基本構文

cp [オプション] [ソース] [デスティネーション]

rsyncコマンドの基本構文

rsync [オプション] [ソース] [デスティネーション]

ディレクトリ階層を指定してコピーする基本的な方法

cpコマンドを使用する方法

`cp`コマンドに`-R`オプションをつけると、ディレクトリ内のファイルやサブディレクトリを再帰的にコピーできます。

cp -R /path/to/source /path/to/destination  # ディレクトリとその内容を再帰的にコピー

rsyncコマンドを使用する方法

`rsync`コマンドに`-a`オプションを使用すると、ディレクトリ、ファイル属性、シンボリックリンクなどを維持したままコピーできます。

rsync -a /path/to/source/ /path/to/destination/  # 属性を保持しながらディレクトリをコピー

応用例

例1: ファイルタイプでフィルタリングしながらコピー

`rsync`コマンドの`–include`と`–exclude`オプションを使用すると、特定のファイルタイプだけをコピーすることができます。

rsync -a --include='*.txt' --exclude='*' /path/to/source/ /path/to/destination/  # .txtファイルのみをコピー

例2: ディレクトリの深さを指定してコピー

`find`コマンドと`cp`コマンドを組み合わせることで、特定の深さのディレクトリまでコピーすることが可能です。

find /path/to/source -maxdepth 2 -exec cp -R {} /path/to/destination/ \;  # 階層が2以下のディレクトリをコピー

例3: データの同期

リモートサーバとのデータの同期にも`rsync`は有用です。

rsync -a /path/to/source/ user@remote:/path/to/destination/  # リモートサーバにデータを同期

例4: スクリプトで自動化

シェルスクリプトを使用して、定期的なバックアップを自動化することが可能です。

#!/bin/bash
rsync -a /path/to/source/ /path/to/backup/

まとめ

Linuxでディレクトリの階層を指定してコピーする方法は多数存在します。基本的な`cp`と`rsync`コマンドの使い方から、応用例までを理解することで、日常の作業が格段に効率化するでしょう。

created by Rinker
オライリージャパン
¥3,080 (2024/10/13 14:15:55時点 Amazon調べ-詳細)

コメント

コメントする

目次