- cpコマンドは、ファイルをディレクトリにコピーしたり、複数のファイルを1つのディレクトリにコピーしたり、ファイルを異なる名前でディレクトリにコピーしたりするために使用できます。
- 主にコンピュータ間でファイルを転送するために使用されるrsyncコマンドは、同じPC上のファイルとディレクトリをコピーするためにも使用でき、ファイル転送の詳細な出力を提供します。
他のオペレーティングシステムと同様に、デスクトップインターフェースを使用してLinuxディストリビューションのファイルとディレクトリ(フォルダー)をコピーして貼り付けることができます。しかし、ターミナルでそれらのファイルをコピーすることで時間を節約できます。その方法は次のとおりです。
cpコマンドとは何ですか?
cpコマンドは、Linuxに組み込まれたネイティブのコピーツールです。cp
はcopyの略で、Linuxでファイルとディレクトリをコピーするために使用されます。cp
を使用して、ファイルをディレクトリにコピーしたり、1つのディレクトリを別のディレクトリにコピーしたり、複数のファイルを1つのディレクトリにコピーしたりできます。cp
コマンドの使用方法を示す例をすべて紹介します。
cpコマンドでLinuxのファイルをコピーする
最も単純な形でcp
の構文を考えてみましょう。
cp [ファイル] [ディレクトリ]
その使用例は次のようになります。
cp Test1.txt copy_Test1_here/
上記のコマンドは、テキストファイルTest1.txt
をcopy_Test1_here/
ディレクトリにコピーします。
1つのディレクトリにコピーする必要があるファイルが複数ある場合は、各ファイルを間にスペースを入れてリストするだけです。
cp Test1.txt Test2.txt Test3.txt Test4.txt copy_all_Tests_here/
ファイルをディレクトリにコピーして、別の名前で保存することもできます。そのための構文を次に示します。
cp [ファイル] [ディレクトリ]/[新しいファイル名]
これにより、最初のタイルの内容がコピーされ、ディレクトリに新しいファイル名として保存されます。同じものの実際の例を次に示します。
Test1.txt
というファイルをcopy_Test1_here
ディレクトリにTest2.txt
としてコピーする必要があるとします。
cp Test1.txt copy_Test1_here/Test2.txt
同じディレクトリに保持したいですか?次のようにファイルをコピーして名前を変更できます。
cp Test1.txt Test2.txt
ファイルが目的の場所にコピーされたかどうかが不明な場合は、オプション-v
を使用して、コピーされたファイルまたはディレクトリの名前を(コンピュータプログラムの出力のように)出力することもできます。
たとえば、Test_Example
というファイルをdir_1
にコピーする必要があるとします。コピー操作の出力を表示するには、-v
オプションを使用します。
cp -v Test_Example.txt dir_1
出力は次のようになります。
'Test_Example.txt' -> 'dir_1/Test_Example.txt
Linuxでディレクトリをコピーする
ディレクトリ全体をコピーしたいですか?dir_1
とdir_2
が/Desktop
にある2つのディレクトリであるとします。cp
コマンドを使用してdir_1
をdir_2
にコピーするには、次のように入力する必要があります。
cp -a dir_1 dir_2
ここでオプション-a
は「アーカイブ」を表し、ディレクトリを扱っていることをコンピュータに知らせるために使用されます。このコマンドは、ディレクトリdir_1
をdir_2
にコピーします。
ディレクトリをコピーする場合にも、ファイルに適用されるルールの大部分が適用されます。たとえば、入れ子になったディレクトリをネストされたファイルと同じようにコピーしたり、-v引数を渡して、実行されたコピー操作をメインcpに表示したりできます。
-aフラグは実際には、-Rと-dという2つのフラグの組み合わせです。-R引数は、コピー操作が再帰的であること、およびコピーされるオブジェクトとそのオブジェクト自体のコピーもコピーする必要があることを指定します。これは、フォルダーをコピーするために不可欠です。-d引数は、すべてのファイルとフォルダーの属性が保持されることを保証します。
cp -r dir_1 dir_2
だけでフォルダーをコピーすることは可能ですが、そうすると特殊な属性が失われる可能性があります。
rsyncでファイルとディレクトリをコピーする
rsync
コマンドは「リモート同期」の略で、主に同じネットワーク上のコンピュータ間でファイルとディレクトリを転送するために使用されます。ただし、同じPC上のファイルとディレクトリをコピーすることもできます。次に例を示します。
dir_1
、dir_2
という2つのディレクトリと、dir_1
内のファイルTest.txt
があるとします。ファイルをdir_2
にコピーする場合は、rsync
コマンドで次のようにします。
rsync -v dir_1/Test.txt dir_2
ここで-v
は「詳細」の略です。cp
コマンドの-v
オプションと同様に、ファイル転送の詳細が表示されます。これにより、コピーが成功したことを確認できます。この場合の出力は次のようになります。
sent 110 bytes received 35 bytes 290.00 bytes/sectotal size is 24 speedup is 0.17
一度に複数のファイルを1つのディレクトリから別のディレクトリにコピーすることもできます。/Desktop
にいて、dir_1
とdir_2
という2つのディレクトリがあるとします。dir_1
にはtest1
、test2
、test3
、test4
という4つのファイルがあり、それらをdir_2
にコピーしたいとします。rsync
を使用してこれを行う方法は次のとおりです。
rsync -v dir_1/Test1.txt dir_1/Test2.txt dir_1/Test3.txt dir_1/Test4.txt dir_2
上記のコマンドは、ファイルtest1
、test2
、test3
、test4
をディレクトリdir_2
にコピーします。
1つのディレクトリを別のディレクトリにコピーするには、-a
オプションを使用する必要があります。Rsyncを使用してディレクトリをコピーする方法の例を次に示します。
rsync -av dir_1 dir_2
Linuxを使い始めたばかりで、コマンドがわかりにくい場合は、時間をかけて最初に基本的なLinuxコマンドに慣れるようにしてください。man
コマンドを使用すると、コマンドについて多くのことを学ぶことができます。
rsync
とcp
に加えて、install
コマンドでもLinuxでファイルをコピーできます。
コメントする