バイオインフォ道場、くまぞうです。
ファイルやディレクトリをコピーするには、cp
コマンドを使います。
コマンドの使い方
基本的な使い方
cp
コマンド名に続き、コピーしたいファイル・コピー先を指定します。別名でコピーしたい場合は、コピー先と別名を指定します。目的に応じてオプションを指定します。上書きする/しない・再帰的なコピーなど色々なオプションがあります。
- ファイルをmydirディレクトリにコピー
cp aaa.txt mydir
- ファイルを別名でmydirディレクトリにコピー
cp aaa.txt mydir/bbb.txt
よく使うオプション
- -i
コピー先に同名のファイルが存在する場合、上書きするかを確認する。
- -R
ディレクトリごとコピーする。
- -p
ファイル情報やフラグを出来るだけ保持したままコピーする。
こんなときはどうする?
-
ディレクトリごとコピーするには?
コピーを行う場合、ファイルを個別にコピーするよりもディレクトリ丸ごとコピーすることが多いかもしれません。そのようなときは、
-R
オプションを指定します。ディレクトリの下に更にディレクトリがあるような階層化された構造でも、丸ごとコピーすることができます。cp -R my_work my_backup
-
ファイル構成やファイル情報などをそのままコピーする場合は?
ファイルをコピーする場合、ファイルの情報は更新されます。特に、ファイルの日付などは、コピー先のファイルはコピーを実行した日時で更新されてしまいます。バックアップファイルを探すとき、日付を手がかりにしたりするときもあるはず。また、ファイルの所有者やフラグ情報も出来るだけそのままコピーしたいことはよくあります。個々のファイル情報をそのままコピーしたい場合は、
-p
を使うとよいですが、ディレクトリを丸ごとコピーするときはいくつかオプションを組み合わせる必要があります。そのようなとき便利なのが、-a
オプションです。-pdR
と同じ意味になるので、ファイル情報やリンクを出来るだけそのままで、ディレクトリ丸ごとコピーします。cp -a my_work my_backup
-
コピー先にファイルが存在する場合、コピーしたくないときは?
大切なファイルは、上書き更新してしまうと困ります。用心深くコピーを行いたい場合は、
-i
オプションを指定します。コピー先に同名のファイルが存在する場合は、上書きするかどうかを確認(y/n)することができます。cp -i updated_file.txt important_dir
-
更新日が新しいファイルだけ上書きしたいときは?
同名のファイルについて、更新日が新しいときだけコピー先のファイルを更新したい場合は、
-u
オプションを指定します。cp -u updated_file.txt old_dir
-
「許可がありません」のエラーが表示された場合は?
Linuxはディレクトリ毎にパーミッションが管理されています。インストール作業や、システムの重要なディレクトリに関する操作には管理者権限が必要です。そのような場合は、
sudo
を指定してcp
コマンドを実施する必要があります。sudo cp myfile.txt important_dir