Linux ターミナルを使ってファイルやディレクトリをコピーする方法

  1. cp コマンドを使ったファイルのコピー
  2. cp コマンドを使ってファイルをディレクトリにコピーする
  3. 複数のファイルをコピーする
  4. cp コマンドを使ったディレクトリのコピー
  5. rsync コマンドを使ったファイルとディレクトリのコピー

Linux Terminal を使って cp, rsync コマンドでファイルやディレクトリをコピーすることができます。一般的には cp コマンドがファイルをコピーするのに用いられ、rsync コマンドがディレクトリをコピーするのに用いられます。

cp コマンドを使ったファイルのコピー

Linux や Unix オペレーティングシステムでは、ファイルやディレクトリのコピーに cp コマンドを用いる。

ファイル abc.txt の内容を別のファイル backup.txt にコピーするには、以下のコマンドを用いる。

cp abc.txt backup.txt

abc.txt の内容を backup.txt にコピーします。ここでは、両方のファイルが現在の作業ディレクトリにある必要があります。

コピー先のファイルが既に存在する場合は、コピー先のファイルの内容が上書きされます。

cp コマンドに -i フラグを追加すると、コピー前に確認画面が表示されるようになる。

cp -i abc.txt backup.txt

出力:

cp: overwrite 'backup.txt'?

ファイルをコピーしたい場合は、Y キーを押して Enter を押す。

cp コマンドを使って何が行われているかを知るには、cp コマンドで -v フラグを使うとよい。

cp -v abc.txt backup.txt

出力:

'abc.txt' -> 'backup.txt'

abc.txt の内容が backup.txt にコピーされていることを示します。

cp コマンドを使ってファイルをディレクトリにコピーする

ファイルをディレクトリにコピーするには、cp コマンドを用いる。cp コマンドの第 1 引数にはコピーするファイルの名前を、第 2 引数にはファイルをコピーするディレクトリの絶対パスまたは相対パスを指定する。

cp abc.txt ./test

これにより、現在の作業ディレクトリにあるファイル abc.txt を現在の作業ディレクトリ test の中のフォルダにコピーする。

親ファイルとは別の名前のファイルを特定のディレクトリにコピーするには、ファイル名を以下のように指定する。

cp abc.txt ./test/test.txt

ファイル abc.txt をフォルダ testtest.txt という名前でコピーします。

複数のファイルをコピーする

複数のファイルとディレクトリを特定のディレクトリにコピーするには、cp コマンドを用いて、ソースファイルとディレクトリをすべて指定し、最後にコピー先のディレクトリを指定します。

cp abc.txt backup.txt test backup

この例では、ファイル abc.txtbackup.txt とフォルダ testbackup フォルダにコピーされています。

また、cp コマンドはパターンマッチングも可能である。

cp *.txt backup

これにより、現在の作業ディレクトリにある拡張子が .txt のファイルをすべて backup フォルダにコピーすることができます。

cp コマンドを使ったディレクトリのコピー

ディレクトリとそのサブディレクトリとファイルをコピー先のディレクトリにコピーするには、cp コマンドと一緒に -r または -R フラグを使う。

cp -r pp Project

これにより、pp ディレクトリ全体とそのサブディレクトリとファイルが Project ディレクトリにコピーされます。

この例では、Project ディレクトリの中に pp ディレクトリが存在することになる。

しかし、ファイルとサブディレクトリだけをコピーしたい場合は、-R フラグと一緒に -T フラグを使う。

cp -RT pp Project

これにより、pp ディレクトリのサブディレクトリとファイルが Project ディレクトリにコピーされる。

rsync コマンドを使ったファイルとディレクトリのコピー

rsync は 2つのホスト間でファイルとディレクトリを同期させるためのコマンドラインユーティリティである。ソースパスとデスティネーションパスの両方がローカルホストを表す場合、rsync コマンドはコピーコマンドのように振る舞う。

rsync -a abc.txt backup.txt

これは abc.txt の内容を backup.txt にコピーする。

ここで、-a フラグは、コピー中にシンボリックリンク、変更時間、グループ、所有権、パーミッションを保持するためのものである。

同様に、ディレクトリを別のディレクトリにコピーすることもできる。

rsync -a /abc /backup-abc

ディレクトリ abc の内容をコピー先のディレクトリ backup-abc にコピーする。

ここで、末尾のスラッシュ / を省略すると、コピー元のディレクトリはコピー先のディレクトリの中にコピーされます。

関連記事 - Linux Files and Directories

  • Linux で新しいディレクトリを作成する方法
  • SCP を使ってファイルやディレクトリを安全に転送する方法
  • comments powered by Disqus