本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「cp」コマンドです。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、ファイルをコピーするための「cp」コマンドです。なお、今回は基本操作のみを扱います。
Linuxでは、ファイルをコピーする際には「cp」コマンドを使います。「cp コピー元 コピー先」のように指定します。コピー先にディレクトリを指定した場合は、指定したディレクトリにコピー元と同じ名前のファイルが作成されます。
cpコマンドの主なオプションは次の通りです。
短いオプション | 長いオプション | 意味 |
---|---|---|
-i | --interactive | 上書きする前に確認する(実行例1を参照) |
-v | --verbose | 実行内容を表示する(実行例3を参照) |
-n | --no-clobber | 存在するファイルを上書きしない |
-f | --force | 強制的に上書きする |
-b | --backup=方法 | 上書きされるファイルのバックアップを作る(「ln」コマンド参照) [方法]:「numbered」または「t」の場合は番号の添え字、「simple」または「never」の場合はファイル名の末尾に「~」または「-S」オプションか環境変数で指定した文字を付けるシンプルなバックアップ(「-b」と同じ)、「existing」または「nil」の場合は既にあるファイルに従う(ない場合はで「simple」と同じ) |
-S 接尾辞 | --suffix=接尾辞 | バックアップファイルを作る際のファイル名末尾に付ける文字(無指定時は「~」1文字、または環境変数「SIMPLE_BACKUP_SUFFIX」に従う) |
短いオプション | 長いオプション | 意味 |
---|---|---|
-d | シンボリックリンク自体をコピーする(--no-dereference --preserve=linksと同様) | |
-s | --symbolic-link | コピーの代わりにシンボリックリンクを作成する |
-l | --link | コピーの代わりにファイルのハードリンクを作成する |
-L | --dereference | コピー元のシンボリックリンクを常にたどる |
-P | --no-dereference | コピー元にあるシンボリックリンクをたどらない |
短いオプション | 長いオプション | 意味 |
---|---|---|
-R,-r | --recursive | コピー元にディレクトリを指定した場合、再帰的に(サブディレクトリも含めて)コピーする |
-t ディレクトリ名 | --target-directory=ディレクトリ名 | 「-t」で指定したディレクトリにコピーする |
-T | --no-target-directory | コピー先(最後の引数)がディレクトリでも特別扱いしない |
短いオプション | 長いオプション | 意味 |
---|---|---|
-a | --archive | サブディレクトリや属性なども含め、可能な限り全てを保持しながらコピーする(-dR --preserve=allと同様) |
-u | --update | コピー元のファイルがコピー先ファイルより新しいか新規ファイルの場合だけコピーする |
-p | パーミッションと所有者とタイムスタンプを保持する(--preserve=mode,ownership,timestamps相当) | |
--preserve[=属性リスト] | 指定した属性を保持する。属性を指定しなかった場合は、mode(パーミッション)、ownership(所有者)、timestamps(タイムスタンプ)が保持される。その他、context(コンテキスト情報)、links(ディレクトリ内のハードリンク)、xattr(ファイルシステムの拡張属性)、all(可能な限り全ての属性)を指定可能 | |
--no-preserve=属性リスト | 指定した属性を保持しない | |
--attributes-only | ファイルのデータをコピーせず、ファイルの属性のみコピーする | |
「cp file1 file2」で、「file1」が「file2」へコピーされます。
cp file1 file2
(「file1」を「file2」にコピーする)
cp -i file1 file2
(「file1」を「file2」にコピーする。「file2」が既にある場合は、上書きするかどうかを確認する)
コピー先に同名のファイルがある場合(上記の場合、「file2」が既にある)は、ファイルはコピーで上書きされます。上書きするかどうかを事前に確認したい場合には、「-i」オプションを使います。
$ ls -l 合計 4 -rw-rw-r--. 1 study study 58 5月 18 20:51 file1
$ cp file1 file2
$ ls -l 合計 8 -rw-rw-r--. 1 study study 58 5月 18 20:51 file1 -rw-rw-r--. 1 study study 58 5月 18 20:51 file2 $ cp -i file1 file2 cp: `file2' を上書きしますか?
Copyright © ITmedia, Inc. All Rights Reserved.