Linuxでのディレクトリのコピー すべてのシステム管理者ルーチンの重要な部分です。
Linuxをかなり長い間使用している場合は、フォルダを適切に構造化しておくことがいかに重要かをご存知でしょう。
場合によっては、システム上のいくつかのディレクトリをコピーする必要があります。 メインのファイルシステム構造を刷新するために。
このチュートリアルでは、Linuxでディレクトリとフォルダを簡単にコピーする方法を見ていきます。 cpコマンドを使用します。
Linux上のディレクトリのコピー
Linuxでディレクトリをコピーするには、再帰的に「-R」オプションを指定して「cp」コマンドを実行し、コピーするソースディレクトリと宛先ディレクトリを指定する必要があります。
$ cp -R <source_folder> <destination_folder>
例として、「/etc」ディレクトリを「/etc_backup」という名前のバックアップフォルダにコピーするとします。
「/etc_backup」フォルダもファイルシステムのルートにあります。
「/etc」ディレクトリをこのバックアップフォルダにコピーするには、次のコマンドを実行します
$ cp -R /etc /etc_backup
このコマンドを実行すると、「/etc」フォルダが「/etc_backup」にコピーされ、次のフォルダになります。

すばらしい、1つのフォルダを正常にコピーしました Linuxの別のフォルダにあります。
しかし、cpコマンドを使用して、ディレクトリのコンテンツを再帰的にコピーしたい場合はどうでしょうか。
Linuxでディレクトリコンテンツを再帰的にコピーする
ディレクトリの内容を再帰的にコピーするには、「-R」オプションを指定して「cp」コマンドを使用し、ソースディレクトリの後にワイルドカード文字を指定する必要があります。
$ cp -R <source_folder>/* <destination_folder>
前の例で、「/etc_backup」フォルダの「/etc」ディレクトリのコンテンツをコピーするとします。
これを実現するには、次のコマンドを記述します
$ cp -R /etc/* /etc_backup
バックアップフォルダの内容を一覧表示すると、フォルダ自体はコピーされていないが、その内容はコピーされていることがわかります。
$ ls -l /etc_backup

素晴らしい、「/etc」ディレクトリのコンテンツをコピーしました バックアップフォルダに入れてください!
cpを使用して複数のディレクトリをコピーする
Linuxで複数のディレクトリをコピーするには、「cp」コマンドを使用して、コピーするさまざまなディレクトリと宛先フォルダを一覧表示する必要があります。
$ cp -R <source_folder_1> <source_folder_2> ... <source_folder_n> <destination_folder>
例として、「/ etc」ディレクトリと、「/home」ディレクトリにあるすべてのホームディレクトリをコピーするとします。
これを実現するには、次のコマンドを実行します
$ cp -R /etc/* /home/* /backup_folder

おめでとうございます。複数のディレクトリを正常にコピーしました Linuxでcpコマンドを使用してください!
ディレクトリをリモートホストにコピー
場合によっては、バックアップサーバーにバックアップを保持するためにディレクトリをコピーすることをお勧めします。
言うまでもなく、バックアップサーバーはローカルにリモートにあります:ネットワーク経由でディレクトリをコピーする必要があります。
rsyncを使用したコピー
ディレクトリをリモートの場所にコピーするには、rsyncコマンドを使用して、コピー先のソースフォルダーとリモートの宛先を指定する必要があります。
「recursive」には「-r」オプションを、「all」には「-a」オプションを必ず含めてください(そうしないと、非正規ファイルはスキップされます)
$ rsync -ar <source_folder> <destination_user>@<destination_host>:<path>
また、「rsync」ユーティリティがサーバーにインストールされていない場合は、必ずsudo権限を使用してインストールしてください。
$ sudo apt-get install rsync
$ sudo yum install rsync
例として、「/etc」フォルダを192.168.178.35/24にあるバックアップサーバーにコピーする必要があるとします。
「devconnected」ユーザー名を使用して、ディレクトリをリモートサーバーの「/etc_backup」にコピーします。
これを実現するには、次のコマンドを実行します
$ rsync -ar /etc [email protected]:/etc_backup

注:詳細なガイドが必要な場合は、ネットワークを介したファイルとフォルダの転送に関するガイドをすでに作成しています。
同様に、コピーするディレクトリの後にワイルドカード文字を追加することで、ディレクトリ自体ではなく「/etc/ディレクトリ」のコンテンツをコピーすることを選択できます。
$ rsync -ar /etc/* [email protected]:/etc_backup/
最後に、ディレクトリバックアップの実行中に現在の日付を導入する場合は、Bashパラメータの置換を利用できます。
$ rsync -ar /etc/* [email protected]:/etc_backup/etc_$(date "+%F")

注 :Linuxで日付を設定するためのチュートリアルをお探しの場合は、Webサイトにガイドがあります。
scpを使用したコピー
Linux上のディレクトリをリモートの場所にコピーするには、「-r」オプションを指定して「scp」コマンドを実行し、その後にコピーするディレクトリと宛先フォルダを続けます。
$ scp -r <source_folder> <destination_user>@<destination_host>:<path>
例として、「/etc」ディレクトリを「/etc_backup」フォルダの192.168.178.35にあるバックアップサーバーにコピーするとします。
これを実現するには、次のコマンドを実行します
$ scp -r /etc [email protected]:/etc_backup/

おめでとうございます。scpコマンドを使用してディレクトリ全体を正常にコピーしました。
rsyncコマンドと非常によく似ており、Bashパラメータ置換を使用して、ディレクトリをサーバー上のカスタムディレクトリにコピーすることを選択できます。
$ scp -r /etc [email protected]:/etc_backup/etc_$(date "+%F")
結論
このチュートリアルでは、Linuxでディレクトリを簡単にコピーする方法を学びました。 、ローカルまたはリモートのどちらで実行するかを選択します。
ほとんどの場合、ディレクトリのコピーは、システム上の重要なフォルダのバックアップを作成するために行われます。 :つまり、/ etc、/ home、またはLinuxログ。
Linuxシステム管理に興味がある場合 、ウェブサイトにはそれ専用の完全なセクションがありますので、ぜひチェックしてください!