Linuxターミナルでファイルやディレクトリをコピーするのは、やり方さえ覚えてしまえば、実に効率的で簡単です。BASHスクリプトなど、GUIを使わずにファイルやディレクトリを管理したい場合に便利です。デスクにいるときでも、SSH経由でリモートマシンにアクセスしているときでも、この操作が可能です。
このハウツーでは、ファイルとディレクトリをコピーするcpコマンドの使い方を説明します。このコマンドを最大限に活用するために追加できる引数についても見ていきます。
これらのコマンドに慣れるまでは、空のファイルやディレクトリの例を使用して作業することをお勧めします。また、指示に注意深く従うように特に注意する必要があります。
このハウツーで紹介するコマンドはすべて、ほとんどのLinuxマシンで動作します。Ubuntu LTSインストールを使用していますが、Raspberry Piでも実行できます。ハウツーはすべてターミナル経由で実行します。ほとんどのLinuxマシンでは、Ctrl、Alt、Tキーを押すことでターミナルウィンドウを開くことができます。
Linuxで単一のファイルをコピーする方法
まずは、1つのファイルをコピーするところから始めましょう。コマンド構文は以下のとおりです。
cp <location and name of item to copy> <location and name for copied item>
1. test1.txt という新しいファイルを作成します。
touch test1.txt
2.ディレクトリの内容を一覧表示して、ファイルが作成されたかどうかを確認します。test1.txt というファイルが表示されるはずです。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。
ls
3. test1.txtファイルをコピーし、名前を test2.txt に変更します。これにより、元のファイルと同じディレクトリに新しいファイルがコピーされます。
cp test1.txt test2.txt
4.ディレクトリの内容を一覧表示し、ファイルがコピーされ名前が変更されたことを確認します。元のファイル test1.txt とコピーされたファイル test2.txt が一覧表示されているはずです。
ls
Linuxでディレクトリをコピーする方法
同様の例を使って、cpコマンドで-r引数を使用してディレクトリをコピーできることを確認しましょう。空のディレクトリを例として使用しましたが、この引数を使用することで、ディレクトリの内容もすべて新しいディレクトリにコピーされます。
1.ホームディレクトリに空のディレクトリを作成します。
mkdir test_directory
2.新しいディレクトリをコピーして名前を変更します。
cp -r test_directory test_directory_2
3.ディレクトリの内容を一覧表示し、コピーしたディレクトリが作成されたことを確認します。test_directoryと test_directory_2 というディレクトリが一覧表示されているはずです。
ls
Linuxでファイルを別の場所にコピーする方法
次の例では、ファイルを別の場所にコピーする方法を見てみましょう。
1.ホームディレクトリに空のディレクトリを作成します。
mkdir test_directory
2.ホームディレクトリにテストファイルを作成します。
touch test1.txt
3.ホームディレクトリからテストディレクトリにテストファイルをコピーします。これにより、ホームディレクトリのtest1.txtがtest_directoryにコピーされます。
$ cp test1.txt test_directory
4.ディレクトリを test_directory に変更し、内容を一覧表示して、ファイルが正しくコピーされたことを確認します。
cd test_directory
ls
ディレクトリ間でファイルをコピーしながら名前を変更する方法
ファイルの場所とコピー先の場所がわかっている場合は、ディレクトリに直接移動する必要はなく、ホームディレクトリからcpコマンドを実行できます。以下に実行例を示します。
1.空のディレクトリを2つ作成します。ホームディレクトリから次のコマンドを実行して、2つの新しいディレクトリを作成します。
mkdir folder1 folder2
2.フォルダ1内に移動し、test1.txtというテストファイルを作成します。
cd folder1
touch test1.txt
3.ホームディレクトリに戻ります。
cd
4.ホーム ディレクトリからテストファイルをコピーし、名前を変更します。cpコマンドにコピー対象ファイルの名前と場所、そしてファイルのコピー先を指定し、ファイル名をtest2.txtに変更します。
cp folder1/test1.txt folder2/test2.txt
5.ディレクトリをfolder2に変更し、内容を一覧表示して、ファイルが正しくコピーされたことを確認します。cdコマンドでディレクトリを変更し、lsコマンドでファイルが正しくコピーされたことを確認します。folder2内にtest2.txtファイルがあるはずです。
cd folder2
ls
ファイルを親ディレクトリにコピーする方法
ディレクトリ間を移動する際に、現在の場所の親ディレクトリにファイルをコピーする必要がある場合があります。コマンドに長いディレクトリ名を入力しなくても、..を使って親ディレクトリを指定すれば、これを実現できます。手順は以下のとおりです。
1. mkdirを使用してテスト ディレクトリを作成します。
mkdir test_directory
2. test_directory に移動します。
cd test_directory
3. test_directory内にテスト ファイルを作成します。
touch test1.txt
4. test1.txt を親ディレクトリにコピーします。ここでは、 cpコマンドに .. を追加するだけで、現在の場所の親ディレクトリに test1.txt のコピーが作成されます。
cp test1.txt ..
5.親ディレクトリに移動し、ファイルがコピーされているかどうかを確認します。test1.txtがこの場所にリストされているはずです。
cd
ls
ご覧のとおり、cp コマンドは非常に簡単に使用できますが、非常に機能的であり、少し練習すれば、グラフィカル インターフェイス ツールを使用するよりも、cp を使用してファイルを外科的にコピーして名前を変更する方がはるかに速くなることがよくあります。